यदि यह ठीक है 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}}
]})