MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongoose:encontre documentos de tipo de esquema misto com várias entradas


É porque a consulta não pode corresponder a nenhum documento em que o campo de matriz parameters tem o objeto array exato como seu valor [{"foo": "bar", "ding": "dong"}] . Para demonstrar isso, vamos inserir alguns documentos de amostra em uma coleção:
/* 0 */
{
    "_id" : ObjectId("551d777fcfd33f4e2a61e48f"),
    "parameters" : [ 
        {
            "foo" : "bar"
        }
    ]
}

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

Consultando esta coleção para parameters array com este array de objetos [{"foo":"bar"}] trará o documento com "_id" :ObjectId("551d777fcfd33f4e2a61e48f") . No entanto, se você alterar seu objeto de consulta para usar $elemMatch então ele trará os dois documentos:
db.collection.find({"parameters": { "$elemMatch": { "foo": "bar" } }});