Mongodb: “niet gelijk” gebruiken in zoekopdrachten


U kunt de operator $ne (wat ’niet gelijk‘ betekent) in MongoDB gebruiken om documenten te vinden waarin een veld niet gelijk is aan een bepaalde waarde.

Deze operator gebruikt de volgende basissyntaxis:

 db.myCollection.find({' team ': { $ne : " Mavs "}})

In dit specifieke voorbeeld wordt gezocht naar alle documenten in de verzameling met de naam myCollection , waarbij het teamveld niet gelijk is aan „Mavs“.

U kunt ook de operator $nin (wat ’niet in‘ betekent) gebruiken om documenten te vinden waarin een veld niet gelijk is aan een waarde in een lijst.

Deze operator gebruikt de volgende basissyntaxis:

 db.myCollection.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})

In dit specifieke voorbeeld wordt gezocht naar alle documenten in de verzameling met de naam myCollection , waarbij het teamveld niet gelijk is aan „Mavs“, „Cavs“ of „Spurs“.

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met een incassoteam met de volgende documenten:

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Spurs ", points: 35, rebounds: 12})
db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Cavs ", points: 23, rebounds: 9})

Voorbeeld 1: zoekopdracht ‚Anders‘

De volgende code laat zien hoe u alle documenten in de teamscollectie kunt vinden waarbij het veld „team“ niet gelijk is aan „Mavs“:

 db.teams.find({' team ': { $ne : " Mavs "}})

Deze query retourneert de volgende documenten:

 { _id: ObjectId("6203ec0e1e95a9885e1e7658"),
  team: 'Cavs',
  points: 23,
  rebounds: 9 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7656"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7655"),
  team: 'Spurs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7657"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }

Houd er rekening mee dat elk document in de teamcollectie wordt geretourneerd waarbij het teamveld niet gelijk is aan „Mavs“.

Opmerking : de operator $ne is hoofdlettergevoelig.

Voorbeeld 2: ‚Niet in‘-query

De volgende code laat zien hoe je alle documenten in de teamcollectie kunt vinden waarbij het teamveld niet gelijk is aan „Mavs“, „Cavs“ of „Spurs“:

 db.teams.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})

Deze query retourneert de volgende documenten:

 { _id: ObjectId("6203ec0e1e95a9885e1e7656"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7657"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }

Houd er rekening mee dat elk document in de teamcollectie wordt geretourneerd als het teamveld niet gelijk is aan „Mavs“, „Cavs“ of „Spurs“.

Opmerking #1 : U kunt hier de volledige documentatie voor de functie $ne vinden.

Opmerking #2 : Je kunt hier de volledige documentatie voor de functie $nin vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in MongoDB kunt uitvoeren:

MongoDB: Hoe u kunt controleren of een veld een string bevat
MongoDB: zoeken naar „not null“ in een specifiek veld
MongoDB: Hoe tekenreeksen te vervangen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert