mongodb如何实现内嵌复杂查询?

诠释这低调 发布于 2016/06/13 22:40
阅读 439
收藏 0
{
    "_id" : ObjectId("502262ab09248743250688ea"),
    "content" : ".....",
    "comment" : [ 
        {
            "author" : "joe",
            "score" : 3,
            "comment" : "just so so!"
        }, 
        {
            "author" : "jimmy",
            "score" : 5,
            "comment" : "cool! good!"
        }, 
        {
            "author" : "test",
            "score" : 5,
            "comment" : "test! good!"
        }
    ]
}




如上格式数据 我想通过$all或$in 获取对应数值:
db.getCollection('factor_config_param').find({"comment.author":{$all:["joe","jimmy"]}});  


db.getCollection('factor_config_param').find({"comment.author":{$in:["joe","jimmy"]}});  




期望结果:


{
    "_id" : ObjectId("502262ab09248743250688ea"),
    "content" : ".....",
    "comment" : [ 
        {
            "author" : "joe",
            "score" : 3,
            "comment" : "just so so!"
        }, 
        {
            "author" : "jimmy",
            "score" : 5,
            "comment" : "cool! good!"
        }
    ]
}

加载中
0
诠释这低调

已解决,分享下同样遇到的人,网上貌似资料很难找,对于不熟练的人来说真的很蛋疼........



db.getCollection('factor_config_param').aggregate({"$unwind":"$comment"}, {"$match":{"comment.author": {"$in": ["joe", "test"]}}},  {"$group": {"_id": "$_id", "comment":{'$push': "$comment"}}})


返回顶部
顶部