MongoDB - Filtrage du contenu d'un tableau interne dans un ensemble de résultats

Je suis nouveau à l'aide de MongoDB, et je ne sais pas comment résoudre le problème suivant:

J'ai une collection de documents comme ceci:

{
 "URL": "www.stackoverflow.com",
 "TAGS": [
         {"NAME": "question", "VOTES": 3},
         {"NAME": "answer", "VOTES": 5},
         {"NAME": "problem", "VOTES": 2}
         ]
}

Tout d'abord, je voulais toutes les Url qui ont tous les tags donnés dans une liste.
J'ai résolu ce problème en quering:

db.links.find( { "Tags.Name" : { $all: ["question","answers"] } } );

Mais cette requête en retour l'ensemble du document, place de que les de document avec seulement les balises, j'ai demandé.

Le résultat que je cherche est:

{
 "URL": "www.stackoverflow.com",
 "TAGS": [{"NAME": "question", "VOTES": 3},
         {"NAME": "answer", "VOTES": 5}]
}

et non pas:

{
 "URL": "www.stackoverflow.com",
 "TAGS": [{"NAME": "question", "VOTES": 3},
         {"NAME": "answer", "VOTES": 5},
         {"NAME": "problem", "VOTES": 2}]
}

Parce que j'ai seulement demandé pour les balises ["question","réponses"].

J'ai pensé à l'aide de MapReduce ou de l'analyse du jeu de résultats, mais je ne sais pas si c'est la bonne manière de résoudre le problème. Peut-être qu'il est un builtin fonction que de le résoudre plus efficacement.

Merci!

source d'informationauteur Martin Zugnoni