正確にnull
の場合 (設定されていないのではなく):
db.states.find({"cities.name": null})
(しかし、javierfpが指摘しているように、都市配列がまったくないドキュメントにも一致します。私はそれらが配列していると思います)。
プロパティが設定されていない場合:
db.states.find({"cities.name": {"$exists": false}})
私はこれらの2つの挿入物で作成されたコレクションで上記をテストしました:
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
最初のクエリは最初の状態を検索し、2番目のクエリは2番目の状態を検索します。 1つのクエリで両方を検索する場合は、$or
を作成できます。 クエリ:
db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})