MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So verwenden Sie MongoDB $ne für verschachtelte Objekteigenschaften

Beantwortung Ihrer Frage zur Verwendung von $ne :

Die Verwendung von $ne lautet wie folgt:

"field":{
  "$ne": yourValue
}

Ihre Abfrage sollte wie folgt aussehen:

"user._id": {
  "$ne": req.user.id
}

Beispiel hier

$ne Der Operator gibt alle Dokumente zurück, bei denen der Feldwert nicht mit dem angegebenen Wert übereinstimmt.

Wie Sie es getan haben, müssen Sie für den Zugriff auf das verschachtelte Feld die Punktnotation verwenden.

Um sicherzustellen, dass es funktioniert, wenn Ihr Schema _id definiert als ObjectId Vielleicht ist es notwendig, req.user.id zu parsen zu ObjectId .
Aber wenn in Ihrem Schema ein String ist, dann sollte es funktionieren.

Versuchen Sie also (überhaupt nicht getestet):

const injected = {
  'user._id': { "$ne": req.user.id }
};