DBObject o=(DBObject) JSON.parse("{ groups.groupName : 'group1' }");
DBObject o2=(DBObject) JSON.parse("{ groups.size : 0 }");
//这个格外的部分是 filed selection,为0你看结果里面就没有这个filed,如果为1则是只有这个filed被返回
DB db = new Mongo().getDB("test");DBCollection coll = db.getCollection("UserInfo");
DBCursor cur = coll.find(o,o2).slaveOk(); //slaveOk是说在replica模式下,访问secondary(扶手)需要slaveOk while(cur.hasNext()){
System.out.println(cur.next());
}
==================result======================================================
{ "_id" : { "$oid" : "4e82e5fe6c7de47b217684a8"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6566c7d169e3e4873d7"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6c26c7d1f4ace2dfe29"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6e96c7d1fb39cf66eb4"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6fb6c7da5fa87fb8b13"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e74c6c7d653edb297c32"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82ea436c7da72043cf2e4c"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
本文通过示例展示了如何使用MongoDB进行复杂查询及筛选操作,包括利用$or和$and逻辑运算符,以及使用$elemMatch进行数组条件匹配。通过实际案例,深入理解查询表达式在数据库操作中的应用。
8万+

被折叠的 条评论
为什么被折叠?



