Mongodb: een “not in”-query gebruiken


U kunt de volgende syntaxis gebruiken om alle documenten te vinden waarin de waarde van een bepaald veld niet in een bepaalde lijst met waarden voorkomt:

 db.collection.find({field1: { $nin : [" value1 ", " value2 ", " value3 "]}}) 

Deze specifieke zoekopdracht zoekt naar alle documenten waarin de waarde van veld 1 niet gelijk is aan waarde1, waarde2 of waarde3.

De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld 1: Zoekopdracht naar “NOT IN” met een waarde

Stel dat we een incassoteam hebben met de volgende documenten:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

We kunnen de volgende code gebruiken om alle documenten te vinden waarin het veld “team” niet gelijk is aan de waarde “Rockets”:

 db.teams.find({team: { $nin : [" Rockets "]}}) 

Deze query retourneert de volgende documenten:

 { _id: ObjectId("619527e467d6742f66749b72"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

{ _id: ObjectId("619527e467d6742f66749b6e"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("619527e467d6742f66749b6f"),
  team: 'Mavs',
  position: 'Guard',
  points: 22 }

Houd er rekening mee dat de enige geretourneerde documenten de documenten zijn waarin het veld ‚team‘ niet gelijk is aan ‚Raketten‘.

Voorbeeld 2: Zoekopdracht naar “NON IN” met een lijst met waarden

Stel dat we een incassoteam hebben met de volgende documenten:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

We kunnen de volgende code gebruiken om alle documenten te vinden waarin het veld “team” niet gelijk is aan de waarde “Rockets” of “Cavs”:

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

Deze query retourneert de volgende documenten:

 { _id: ObjectId("619527e467d6742f66749b6e"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("619527e467d6742f66749b6f"),
  team: 'Mavs',
  position: 'Guard',
  points: 22 }

Houd er rekening mee dat de enige geretourneerde documenten de documenten zijn waarin het veld ‚team‘ niet gelijk is aan ‚Rockets‘ of ‚Cavs‘.

Opmerking : u 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: Query’s uitvoeren met een reguliere expressie „Vind ik leuk“.
MongoDB: Hoe u kunt controleren of een veld een string bevat
MongoDB: Hoe u een nieuw veld aan een verzameling toevoegt
MongoDB: Hoe u een veld uit elk document verwijdert

Einen Kommentar hinzufügen

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