使用morphia查询mongodb

时间:2021-01-05 08:43:57

@Entity

public class UserInfo {
@Id
public ObjectId id;

        public List<Group> groups;

}

public class Group {

        public int size;

public String groupName; 

       public Group(groupName){};

       public Group(groupName,size){};

}


Datastore ds = xxxx;

存一个UserInfo 在它的groups集合中加一个group,name为groupName1

ds.find(UserInfo.class).filter("groups",new Group("groupName1")).get() 

ds.find(UserInfo.class).filter("groups.groupName","groupName1").get()

两者都可以query得到对象,翻译成sql就是遍历groups,找出groupName为groupName1的 遍历中只要存在一个就返回这个 userInfo

ds.find(UserInfo.class).filter("groups",new Group("groupName1",1)).get()

得不到翻译成sql就是遍历groups,找出groupName为groupName1并且   size=0的只要有一个出现  就返回userInfo

ds.find(UserInfo.class).filter("groups",new Group("groupName1",0)).get()

能得到,size为int型,默认是值是0;