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