sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose:hitta dokument av blandad schematyp med flera poster

Det beror på att frågan inte kan matcha några dokument där arrayfältet parameters har det exakta arrayobjektet som sitt värde [{"foo": "bar", "ding": "dong"}] . För att demonstrera detta, låt oss infoga ett par exempeldokument i en samling:

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

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

Frågar den här samlingen efter parameters array med denna objekt array [{"foo":"bar"}] kommer att ta med dokumentet med "_id" :ObjectId("551d777fcfd33f4e2a61e48f") . Men om du ändrar ditt frågeobjekt till att använda $elemMatch då kommer båda dokumenten:

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



  1. Antal poster efter datum MongoDB

  2. mongo-fråga - finns egendom?

  3. mongodb c# välj specifikt fält

  4. Installera MongoDB på Windows