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

Devuelve solo el valor de la matriz en la proyección de mongo

JSON no permite que el nivel superior sea una matriz, por lo que una consulta normal no lo permite. Sin embargo, puede hacer esto con el marco de agregación:

> db.test.remove();
> db.test.insert({ name: "Andrew", attributes: [ { title: "Happy"}, { title: "Sad" } ] });
> foo = db.test.aggregate( { $match: { name: "Andrew" } }, { $unwind: "$attributes" }, { $project: { _id: 0, title: "$attributes.title" } } );
{
    "result" : [
        {
            "title" : "Happy"
        },
        {
            "title" : "Sad"
        }
    ],
    "ok" : 1
}
> foo.result
[ { "title" : "Happy" }, { "title" : "Sad" } ]

Sin embargo, esto no crea un objeto de cursor que find sí.