MongoDB: Jak sprawdzić czy pole ma daną wartość lub null?
Opublikowano: 21.04.2022 - tagi: MongoDB Baza danych Zapytanie
Załóżmy, że mamy taki model danych:
{
title: string,
status: string | null
}
Poniżej przykład danych na podstawie tego modelu:
[
{
title: "Status Draft"
status: "draft"
}
{
title: "Status Null"
status: null
},
{
title: "Status Closed"
status: "closed"
}
]
I teraz potrzebujemy napisać zapytanie, które pobierze nam dane na podstawie pola status: pobierz rekordy dla wartości X lub dla null.
Wystarczy napisać:
db.find({
$or: [
{
status: { $eq: 'draft' }
},
{
status: { $type: 'null' }
}
]
})
Korzystamy tutaj z operatora $or: sprawdzamy najpierw, czy istnieją rekordy o podanej wartości i dodatkowo informujemy za pomocą $type, że chcemy pobrać także rekordy z wartością null.
W tym przypadku zwróci dwa rekordy:
[
{
title: "Status Draft"
status: "draft"
}
{
title: "Status Null"
status: null
}
]