111 votes

MongoDB est pas égal à

J'essaie d'afficher une requête dans MongoDB, où un champ de texte n'est pas " (vide)

{ 'name' : { $not : '' }}

Cependant, je reçois le message d'erreur invalid use of $not

J'ai examiné la documentation, mais les exemples qu'ils utilisent pour les cas plus complexes (avec des regexp et $not niant un autre opérateur).

Comment pourrais-je faire quelque chose de simple: je suis en train de faire?

160voto

om-nom-nom Points 33691

Utiliser $ne -- $not devrait être suivie par la norme de l'opérateur:

Exemples:

use test
switched to db test
db.test.insert({author : 'me', post: ""})
db.test.insert({author : 'you', post: "how to query"})
db.test.find({'post': {$ne : ""}})
{ "_id" : ObjectId("4f68b1a7768972d396fe2268"), "author" : "you", "post" : "how to query" }

Et maintenant $pas:

db.test.find({'post': {$not: {$ne : ""}}})
{ "_id" : ObjectId("4f68b19c768972d396fe2267"), "author" : "me", "post" : "" }

67voto

Martin Konecny Points 7328

Si vous voulez faire plusieurs $ne alors n'

db.users.find({name : {$nin : ["mary", "dick", "jane"]}})

38voto

Kemal Fadillah Points 6179

Utiliser $ne au lieu de $not

http://docs.mongodb.org/manual/reference/operator/ne/#op._S_ne

db.collections.find({"name": {$ne: ""}});

2voto

Andy Points 132

Exemple réel:

var players = Players.find({ my_x: player.my_x, my_y: player.my_y, userId: {$ne: Meteor.userId()} }); // Find all but not current user

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X