2016-03-20 14 views
0

meiner Sammlung wie folgt aus:Abfrage Mongo db für die Liste der Objekt in Objektsammlung

{ 
    "_id" : ObjectId("56b888ae31c1d1d3bf79f8c6"), 
    "_class" : "fore.server.domain.post.UserPost", 
    "image" : { "_id" : null, "statusText" : "This food i cooked" }, 
    "healthRates" : [ 
     { 
     "_id" : null, 
     "rateValue" : "VerryPoor", 
     "uid" : { "_id" : "HS-56541" } 
     } 
    ] 
} 

und ich will für die ganze Sammlung abzufragen, die die Benutzer-ID hat, wie folgt:

{"uid" : { "_id" : "HS-56541" }} 

aber meine Anfrage bekomme nichts !! Ich habe folgendes versucht!

db.userPost.find({healthRates:{$elemMatch: "uid" : { "_id" : "HS-56541" } }) 

und ich versuchte

db.userPost.find({"healthRates.uid.id" : "HS-56541" }) 

ohne Ergebnis! Irgendwelche Vorschläge bitte?

Antwort

1

Sie befanden sich auf der richtigen Spur, indem Sie mit $ elemMatch das eingebettete Array in Ihrem Dokument abfragen. Die folgende Abfrage funktioniert:

db.userPost.find({healthRates:{$elemMatch:{uid._id:"HS-56541"}}}) 
+0

Thx :) Ich hatte gerade doppelte Anführungszeichen zu ur Anweisung hinzufügen und es wird funktionieren wie das db.userPost.find ({healthRates: {$ elemMatch: {uid._id: "HS-56541"}}}) –