sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongoose:encuentre documentos de tipo de esquema mixto con múltiples entradas

Es porque la consulta no puede coincidir con ningún documento donde el campo de matriz parameters tiene el objeto matriz exacto como valor [{"foo": "bar", "ding": "dong"}] . Para demostrar esto, insertemos un par de documentos de muestra en una colección:

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

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

Consultando esta colección para parameters matriz con este objeto matriz [{"foo":"bar"}] traerá el documento con "_id":ObjectId("551d777fcfd33f4e2a61e48f") . Sin embargo, si cambia su objeto de consulta para usar $elemMatch luego traerá ambos documentos:

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