Der $ne-Operator in MongoDB
In diesem Artikel wird erläutert, wie der Operator $ne
in MongoDB funktioniert. Außerdem werden wir seine Unterschiede mit dem Operator $not
aufzählen.
der $ne
-Operator in MongoDB
$ne
ist ein Operator in MongoDB, der für ungleich steht. Dies vergleicht den Wert eines Feldes und prüft, ob dieser gleich ist.
Syntax:
{field: {$ne: value}}
Angenommen, Sie haben die folgenden Dokumente in der Sammlung Mitarbeiter
.
> db.employee.find().pretty()
{"_id":1, "name":"Alice", "salary": 1500, "gender":"Female"}
{"_id":2, "name":"Bob", "salary": 2500, "gender":"male"}
{"_id":3, "name":"Jhon", "salary": 3500, "gender":"male"}
{"_id":4, "name":"Grace", "salary": 4500, "gender":"female"}
Nun wollen Sie alle männlichen
Mitarbeiter sehen. Dann sollte Ihre Abfrage wie folgt aussehen:
> db.employee.find({gender:{$ne: female}}).pretty()
{"_id":2, "name":"Bob", "salary": 2500, "gender":"male"}
{"_id":3, "name":"Jhon", "salary": 3500, "gender":"male"}
Ein weiteres Beispiel: Sie wurden gebeten, die Frau anzuzeigen, deren Gehalt größer oder gleich 4000 ist. Die Abfrage sollte also lauten:
> db.employee.find({gender:{$ne: male}, salary:{$gte:4000}}).pretty()
{"_id":4, "name":"Grace", "salary": 4500, "gender":"female"}
Unterschied zwischen den Operatoren $not
und $ne
Sie haben oben die Syntax für den Operator $ne
gesehen. Wie Sie bemerkt haben, akzeptiert $ne
nur Werte als Parameter.
Es prüft einfach, ob ein Dokument den genauen Wert im angegebenen Feld hat oder nicht. In manchen Fällen benötigen wir eher einen logischen Ausdruck als einen konstanten Wert; dann verwenden wir $not
.
Syntax:
{ field: { $not: { <operator-expression> } } }
Hier sind die Ähnlichkeiten und Unterschiede zwischen $ne
und $not
:
$ne |
$not |
---|---|
Akzeptiert Werte als Parameter. | Akzeptiert einen logischen Ausdruck als Parameter. |
Unterstützt darin keine verschachtelten Abfragen. | Sie können eine verschachtelte Abfrage innerhalb des Operators $not verwenden. |
$ne wählt die Dokumente aus, bei denen der Wert des Felds nicht gleich dem angegebenen Wert ist, einschließlich Dokumente, die das Feld nicht enthalten. |
$not wählt die Dokumente aus, die nicht mit dem Operatorausdruck übereinstimmen, einschließlich Dokumente, die das Feld nicht enthalten. |
$ne unterstützt Regex nicht. |
$not unterstützt Regex. |
Um mehr über $ne
und $not
zu erfahren, besuchen Sie die beigefügte offizielle Dokumentation.