Если это точно null
(а не не установлено):
db.states.find({"cities.name": null})
(но, как указывает javierfp, он также соответствует документам, у которых вообще нет массива городов, я предполагаю, что они есть).
Если свойство не установлено:
db.states.find({"cities.name": {"$exists": false}})
Я протестировал вышесказанное с коллекцией, созданной с помощью этих двух вставок:
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
Первый запрос находит первое состояние, второй запрос находит второе. Если вы хотите найти их обоих с помощью одного запроса, вы можете сделать $or
запрос:
db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})