Estoy jugando con el La bios Ejemplo de Colección de http://docs.mongodb.org/manual/reference/bios-example-collection para educar a mí mismo acerca de la consulta de mongodb.

Quiero recuperar información acerca de los premios que ganó _id : 1 en año : 1975.

He intentado de varias consultas, entre los

bios.find({
    "_id" : 1,
    "awards" : {
        "year" : 1975
    }
});

pero yo nunca reciban el documento de nuevo. ¿Cómo puedo recuperar la información de este documento en la matriz?

InformationsquelleAutor mritz_p | 2013-10-28

1 Comentario

  1. 37

    Usted tiene que utilizar el la notación de punto:

    bios.find({"_id" : 1, "awards.year" : 1975 });

    Es un sin sentido de la consulta, porque también tienen la _id en la consulta, pero supongo que es debido al hecho de que estás jugando con un ejemplo. También, usted está diciendo que usted está buscando para los premios de 1967, pero el código dice 1975.

    Si usted busca para "awards" : { "year" : 1975 }, mongodb va a buscar una coincidencia exacta de todo el subdocumento awards. En este caso, que no es lo que quieres. También, desde awards es una matriz, esto siempre será falsa. Si quiere ver un determinado premio documento en una lista, $elemMatch sería el camino a seguir.

    • El año fue un error de tipeo. Muchas gracias por la detallada explicación!

Dejar respuesta

Please enter your comment!
Please enter your name here