mongodb - query - mongoose find in array of objects
Encuentra Subdocumento en Array con mongodb (1)
Tienes que usar la notación de puntos :
bios.find({"_id" : 1, "awards.year" : 1975 });
Es una consulta bastante inútil, porque también tienes el _id
en la consulta, pero supongo que se debe al hecho de que estás jugando con un ejemplo. Además, estás diciendo que estás buscando premios desde 1967, pero el código dice 1975.
Si busca "awards" : { "year" : 1975 }
, mongodb buscará una coincidencia exacta de todos los awards
subdocumentos. En este caso, eso no es lo que quieres. Además, dado que los awards
son una matriz, esto siempre será falso. Si desea buscar un documento de premio específico en una lista, $elemMatch
sería el camino a seguir.
Estoy jugando con The Bios Example Collection de http://docs.mongodb.org/manual/reference/bios-example-collection para informarme sobre cómo consultar mongodb.
Quiero recuperar información sobre los premios ganados por _id: 1 en el año: 1975 .
Intenté varias consultas, entre esas
bios.find({
"_id" : 1,
"awards" : {
"year" : 1975
}
});
pero nunca recibo el documento adecuado de vuelta. ¿Cómo puedo recuperar este documento en la matriz?