MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Restituisce solo il valore dell'array nella proiezione mongo

JSON non consente al livello superiore di essere un array, quindi una query normale non lo consente. Puoi comunque farlo con il framework di aggregazione:

> 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" } ]

Questo, tuttavia, non crea un oggetto cursore che trova.