Mongodb: jak zapytać „nie null”? w określonym obszarze


Możesz użyć następującej składni, aby znaleźć wszystkie dokumenty, dla których określone pole nie ma wartości null w MongoDB:

 db.collection.find({" field_name ":{ $ne : null }}) 

Poniższe przykłady pokazują, jak używać tej składni w praktyce.

Przykład 1: Zapytanie o „nie null” w określonym polu

Załóżmy, że mamy zespół windykacyjny z następującymi dokumentami:

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

Możemy użyć poniższego kodu, aby znaleźć wszystkie dokumenty, w których pole „pozycja” nie ma wartości null:

 db.teams.find({" position ":{ $ne : null }})

To zapytanie zwraca następujące dokumenty:

 { _id: ObjectId("618bf18f35d8a762d3c28717"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

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

Należy pamiętać, że zwracane są tylko te dokumenty, których pole „pozycja” nie ma wartości null.

Przykład 2: Zapytanie o „not null” (gdy żaden dokument nie zawiera tego pola)

Załóżmy, że mamy zespół windykacyjny z następującymi dokumentami:

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

Zauważ, że drugi dokument w kolekcji nie ma nawet pola „pozycja”.

Możemy użyć poniższego kodu, aby znaleźć wszystkie dokumenty, w których pole „pozycja” nie wynosi zero:

 db.teams.find({" position ":{ $ne : null }})

To zapytanie zwraca następujące dokumenty:

 { _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

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

Ponieważ drugi dokument nie ma nawet pola „pozycja”, nie jest on zwracany.

Należy również pamiętać, że pozostałe dwa dokumenty, które mają wartość null w polu „pozycja”, również nie są zwracane.

Podsumowanie : Stosując składnię $ne:null , zwracamy tylko dokumenty, dla których istnieje określone pole i nie ma ono wartości null.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w MongoDB:

MongoDB: Jak wysyłać zapytania za pomocą wyrażenia regularnego „Lubię to”
MongoDB: Jak sprawdzić, czy pole zawiera ciąg znaków
MongoDB: Jak dodać nowe pole do kolekcji
MongoDB: Jak usunąć pole z każdego dokumentu

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *