Trouver le sous-document en tableau avec mongodb
je suis à jouer avec le bios Exemple de la Collection de http://docs.mongodb.org/manual/reference/bios-example-collection pour me renseigner sur l'interrogation mongodb.
je veux récupérer des informations sur les prix remportés par _id: 1année : 1975.
j'ai essayé plusieurs requêtes, parmi ceux
bios.find({
"_id" : 1,
"awards" : {
"year" : 1975
}
});
mais je ne reçois jamais le bon document. Comment puis-je récupérer ce document dans le tableau?
1 réponses
Vous devez utiliser le point:
bios.find({"_id" : 1, "awards.year" : 1975 });
c'est une requête plutôt inutile, parce que vous avez aussi le _id
dans la requête, mais je suppose que c'est dû au fait que vous jouez avec un exemple. Aussi, vous dites que vous cherchez des récompenses de 1967, mais le code dit 1975.
Si vous recherchez "awards" : { "year" : 1975 }
, mongodb va chercher une correspondance exacte du sous-document entier awards
. Dans ce cas, ce n'est pas ce que vous voulez. Aussi, depuis awards
est un tableau, ce sera toujours faux. Si vous souhaitez consulter un document dans une liste, $elemMatch
serait la voie à suivre.