sql >> Database >  >> NoSQL >> MongoDB

Mongoose:vind documenten van het gemengde schematype met meerdere vermeldingen

Het is omdat de query niet kan overeenkomen met documenten waarin het arrayveld parameters heeft het exacte array-object als waarde [{"foo": "bar", "ding": "dong"}] . Laten we om dit te demonstreren een paar voorbeelddocumenten invoegen in een verzameling:

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

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

Deze verzameling opvragen voor parameters array met dit object array [{"foo":"bar"}] zal het document met "_id" brengen:ObjectId("551d777fcfd33f4e2a61e48f") . Als u echter uw query-object wijzigt om $elemMatch dan brengt het beide documenten:

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



  1. Mongolab verbindingsfout

  2. Mongodb-database Schema Design met gedeelde gegevens

  3. 3 manieren om een ​​waarde uit een array in MongoDB te verwijderen

  4. Een checklist voor ontwikkeling en bedrijfsvoering voor MongoDB