2015-03-24 77 views
0

我想要生成一个mongo查询,它将返回mktid = x和selctionid = y的所有条目,如下所示。 SelectionId是actors数组的成员,如下所示。Mongo初学者,查询内部数组

我已经尝试了多个这样的事情

db.getCollection('mycollection').find({mktid:"334455555",'actors.selectionId' : "443311555"}) 

db.getCollection('mycollection').find({mktid:"334455555",'actors.0.selectionId' : "443311555"}) 

的DB:

{ 
    "_id": { 
    "$oid": "55098030e4b02da345b0a2ed" 
    }, 
    "mktid": "55555555", 
    "dubious": false, 
    "state": "OPEN" 
    "actors": [ 
    { 
     "selectionId": 3333333, 
     "activityid": 0, 
     "status": "ACTIVE", 
    }, 
    { 
     "selectionId": 4444445gg, 
     "activityid": 0, 
     "status": "ACTIVE", 
    }, 
    { 
     "selectionId": xccfffff, 
     "activityid": 0, 
     "status": "ACTIVE", 
    } 
    ] 
} 

{ “_id”:{ “$ OID”:“ 55098030e44b02da345b0a2ed“ }, “mktid”: “5555552”, ---- ---

回答

2
db.getCollection('mycollection').find({mktid:"334455555", actors: { 
       $elemMatch: { 
        selectionId: "443311555" 
       } 
     } 
}); 

看到这里的 “查询文件的数组” 部分:http://docs.mongodb.org/manual/reference/method/db.collection.find/

+0

@马克您好,感谢您的回答,您正如我问的那样回答了我的问题,并且我已经接受了它的正确性。但是,直到我看到结果时,我才知道我真正想要什么!我在这里问了另一个问题:http://stackoverflow.com/questions/29261073/mongo-query-limit-results-on-member-of-inner-array而不是修改这个问题是别的。 – user1843591 2015-03-25 16:23:14