mongodb 内嵌文档多条件查询($elemMatch)

引子

最近,工作上需要对内嵌文档进行多条件查询,所以用到了“$elemMatch”,花了很大精力终于也算初步弄明白了“$elemMatch”的用处。所以在这里记下一些新的。

$elemMatch用法

“$elemMatch”用于对内嵌文档进行多条件查询。

数据结构:
mongodb 内嵌文档多条件查询($elemMatch)_第1张图片

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”等的查询条件是不一样的

mongodb 内嵌文档多条件查询($elemMatch)_第2张图片

你可能感兴趣的:(mongodb)