2012-08-19 2 views

Répondre

8

Voici l'explication de mongodb.org:

$ tous

Le $ tout opérateur est similaire à $, mais au lieu de chercher une valeur dans le tableau spécifié toutes les valeurs dans le tableau doit être apparié. Par exemple, l'objet

{a: [1, 2, 3]}

recevraient un

db.things.find ({a: {$ tous: [2, 3] }});

mais pas

db.things.find ({a: {$ tous: [2, 3, 4]}});

Un tableau peut contenir plus d'éléments que ceux spécifiés par les critères $ all. $ all spécifie un ensemble minimum d'éléments qui doivent être mis en correspondance.

En savoir plus sur les opérateurs de MongoDB here

5

$ tout opérateur récupère tous les documents qui contient le sous-ensemble des valeurs que nous transmettons. Le sous-ensemble peut être dans n'importe quel ordre.

L'opérateur $ in récupère tous les documents contenant l'une des valeurs que nous transmettons.

Par exemple, considérez la collection "compétences" avec les documents suivants,

{ "Name" : "Balaji", "skills" : [ "Dancing", "Cooking", "Singing" ] } 
{ "Name" : "Ramesh", "skills" : [ "Cooking", "Singing" ] } 
{ "Name" : "Suresh", "skills" : [ "Dancing", "Singing" ] } 

db.skills.find ({compétences: {$ tous: [ "La cuisine", "Chant"]}}) sera ne renvoyer que les documents contenant à la fois des compétences de danse et de chant, c'est-à-dire Balaji et Ramesh. Db.skills.find ({skills: {$ in: ["Cooking", "Singing"]}}) `retournera tous les documents puisque tous les documents contiennent soit la cuisson soit le chant.

+0

expliqué très bien – Jason

Questions connexes