Jeśli jest dokładnie null
(w przeciwieństwie do nieustawionego):
db.states.find({"cities.name": null})
(ale jak wskazuje javierfp, pasuje również do dokumentów, które nie mają w ogóle tablicy miast, zakładam, że tak).
Jeśli jest tak, że właściwość nie jest ustawiona:
db.states.find({"cities.name": {"$exists": false}})
Przetestowałem powyższe z kolekcją utworzoną za pomocą tych dwóch wkładek:
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
Pierwsze zapytanie znajduje pierwszy stan, drugie zapytanie znajduje drugi. Jeśli chcesz znaleźć je oba za pomocą jednego zapytania, możesz wykonać $or
zapytanie:
db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})