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