2015-03-24 116 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