sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man använder MongoDB $ne på kapslad objektegenskap

Svarar på din fråga om hur du använder $ne :

Användningen av $ne är som följer:

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

I din fråga bör det vara så här:

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

Exempel här

$ne operatören returnerar alla dokument där fältvärdet inte matchar det angivna värdet.

Som du har gjort måste du använda punktnotationen för att komma åt det kapslade fältet.

För att säkerställa att det fungerar, om ditt schema definierar _id som ObjectId kanske är nödvändigt att analysera req.user.id till ObjectId .
Men om det finns en sträng i ditt schema så borde det fungera.

Så försök (inte testat alls):

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



  1. Hur man kör flera applikationer med en enda mongodb med docker

  2. MongoDB:Ta bort ett fält från ALLA underdokument i ett matrisfält

  3. mongoose summa ett värde över alla dokument

  4. 2 sätt att få ett dokuments storlek i MongoDB