Wenn es genau null
ist (im Gegensatz zu nicht gesetzt):
db.states.find({"cities.name": null})
(aber wie javierfp betont, stimmt es auch mit Dokumenten überein, die überhaupt kein Städte-Array haben, ich gehe davon aus, dass sie es tun).
Falls die Eigenschaft nicht gesetzt ist:
db.states.find({"cities.name": {"$exists": false}})
Ich habe das Obige mit einer Sammlung getestet, die mit diesen beiden Einfügungen erstellt wurde:
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
Die erste Abfrage findet den ersten Zustand, die zweite Abfrage den zweiten. Wenn Sie beide mit einer Abfrage finden möchten, können Sie einen $or
eingeben Abfrage:
db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})