Możesz użyć $elemMatch
operator zapytania. Potrzebne jest tylko zapytanie.
db.test.find( { arr: { $not: { $elemMatch: { $ne: null } } } } )
"$elemMatch" + "$ne"
Ta część zawiera wszystkie dokumenty, w których arr
tablica nie ma co najmniej jednej wartości null.
To są wszystkie dokumenty, które mają przynajmniej jedną wartość nie zerową.
$not
Ta część zachowa wszystkie dokumenty, których nie ma w "$elemMatch" + "$ne"
.
To są wszystkie dokumenty, które mają wszystkie wartości jako null
.
Proszę uwzględnić skrajne przypadki, w których pole nie istnieje, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami.