Якщо це точно 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}}
]})