MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose :trouver des documents de type schéma mixte avec plusieurs entrées

C'est parce que la requête ne peut correspondre à aucun document où le champ de tableau parameters a l'objet tableau exact comme valeur [{"foo": "bar", "ding": "dong"}] . Pour illustrer cela, insérons quelques exemples de documents dans une collection :

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

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

Interroger cette collection pour les parameters tableau avec cet objet tableau [{"foo":"bar"}] apportera le document avec "_id" :ObjectId("551d777fcfd33f4e2a61e48f") . Cependant, si vous modifiez votre objet de requête pour utiliser $elemMatch alors il apportera les deux documents :

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