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

マングース:複数のエントリを持つ混合スキーマタイプのドキュメントを検索します

    これは、配列フィールドのparametersが存在するドキュメントとクエリが一致しないためです。 正確な配列オブジェクトを値として持つ[{"foo": "bar", "ding": "dong"}] 。これを示すために、コレクションにいくつかのサンプルドキュメントを挿入しましょう:

    /* 0 */
    {
        "_id" : ObjectId("551d777fcfd33f4e2a61e48f"),
        "parameters" : [ 
            {
                "foo" : "bar"
            }
        ]
    }
    
    /* 1 */
    {
        "_id" : ObjectId("551d777fcfd33f4e2a61e490"),
        "parameters" : [ 
            {
                "foo" : "bar",
                "ding" : "dong"
            }
        ]
    }
    

    このコレクションでparametersをクエリする このオブジェクトを含む配列配列[{"foo":"bar"}] "_id"のドキュメントが表示されます:ObjectId("551d777fcfd33f4e2a61e48f") 。ただし、クエリオブジェクトを変更して $elemMatch 次に、両方のドキュメントが表示されます:

    db.collection.find({"parameters": { "$elemMatch": { "foo": "bar" } }});
    



    1. MongoDBスキーマデザイン-新しいコレクションまたはリファレンス?

    2. WindowsでのMongoDBのトラブルシューティング(C#)(どうすればよいですか?)

    3. Mongodbを起動できません

    4. MongoDB GUIクライアント(クロスプラットフォームまたはLinux)