sql >> データベース >  >> NoSQL >> MongoDB

mongodbで子オブジェクトをクエリする方法

    正確に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}}
    ]})
    


    1. mongodbコレクション内のドキュメントの数をカウントする方法

    2. MongooseJS ObjectIdが同等性テストに失敗するのはなぜですか?

    3. SQLでグループの最小値を持つ行を選択する5つの方法

    4. Pymongo / MongoDB:インデックスを作成しますか、それともインデックスを確保しますか?