MongoDB - Multiple de $ou opérations
Comment pourrais-je avoir plusieurs $ou opérations? Jusqu'à présent, j'ai essayé ce qui suit, mais il ignore silencieusement le 2e $ou.
{
$or: [{a: 2}, {a: 3}],
$or: [{b: 5}, {b: 4}]
}
Je suppose que c'est parce que je suis l'aide de deux clés identiques. Est-il un moyen de contourner cela?
Vous devez vous connecter pour publier un commentaire.
Mongo 2.0 ajouté un $et l'opérateur, de sorte que vous pouvez faire une requête de ce type:
http://www.mongodb.org/display/DOCS/Advanced+Requêtes#AdvancedQueries-%24 et
Pour plusieurs comme en sql, nous utilisons $et pour ne pas nous utiliser $nin
vc est notre nom de la collection ici.Nous sommes à la recherche de ces chaîne contient de l'uc ou de la note.
Vous ne pouvez pas imbriquer plusieurs $ou de déclarations.
Cela est documenté ici:
http://www.mongodb.org/display/DOCS/Advanced+Requêtes#AdvancedQueries-%24or
En dehors de cela: votre requête n'a beaucoup de sens.
Si vous essayez de requête pour un être 2 ou 3 et b être 5 ou 4:
{a : {$dans : [2,3]}, b: {$dans : [4,5 ]} }
S'il vous plaît ne pas essayer d'inventer une nouvelle syntaxe.
$or
's de l'OP peut ne pas être légal, mais ils sont adjacents les uns aux autres, non emboîtés.$et ne sera pas faire le travail, depuis le 2 $ou ne sera pas validé si la première échoue.
De la Mongo homme page:
Le $et l'opérateur utilise évaluation de court-circuit. Si la première expression (par exemple ) a la valeur false, MongoDB n'évaluera pas le reste des expressions.
Imbriquée $ou devraient cependant faire l'affaire:
db.les choses.find({$ou: [{$ou : [{"a": 1},{'b':2}]},{$ou : [{'a':2},{'b':3}]}] })