引子
最近,工作上需要对内嵌文档进行多条件查询,所以用到了“$elemMatch”,花了很大精力终于也算初步弄明白了“$elemMatch”的用处。所以在这里记下一些新的。
$elemMatch用法
“$elemMatch”用于对内嵌文档进行多条件查询。
数据结构:
mongodb原生用法:
{ "partnerList" :
{ "$elemMatch" :
{ "_id" : "oWIhatzfn87FnMWh5XJkB2zCUUMI" , "status" : 1}
}
}
mongodb java 用法:
BasicDBObject value2 = new BasicDBObject();
value2.put("_id", openid);
value2.put("status", ActivityPartner.AGREE);
DBObject dbObj2 = new BasicDBObject("partnerList",new BasicDBObject("$elemMatch", value2));
“partnerList”:外部文档中存放内嵌文档的字段。
“_id、status”:内嵌文档的字段
扩展
在处理问题的过程中发现了另外一个问题,“ elemMatch”和“ or”等的查询条件是不一样的