2010-08-05 8 views
0

J'ai une collection du genre de documents suivants (tirés de Mongo DB Docs: Schema Design pour la familiarité):Recherche dans tableau dans le document particulier dans MongoDB

db.students 
{ name: 'Jane', 
    scores: [ 
       { course: 'math', grade: 'A'}, 
       { course: 'biology', grade: 'B'}, 
       { course: 'english', grade: 'C'} 
      ] 
} 

Si j'ai déjà le document pour Jane, quelle est la meilleure façon pour récupérer son grade pour par exemple math?

Le seul conseil que j'ai pu trouver dans les docs concerne par exemple la recherche de tous les étudiants de niveau A en mathématiques, mais dans ce cas j'ai déjà le document étudiant que je veux interroger.

La seule façon que j'ai vu pour accéder aux tableaux est à travers l'index de tableau, par ex. scores [0] .grade, mais je ne connais pas nécessairement l'indice du tableau.

Merci

edit: Je suis conscient que je pouvais faire une boucle à travers le réseau pour trouver l'entrée correcte, mais je me demandais s'il y avait une meilleure façon.

Répondre

0

Si vous utilisez la version 2.2 de MongoDB, vous pouvez utiliser la fonction d'agrégation 'match':

Voir here pour plus de détails.

Questions connexes