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

Renvoie uniquement la valeur du tableau dans la projection mongo

JSON ne permet pas au niveau supérieur d'être un tableau, donc une requête normale ne le permet pas. Vous pouvez cependant le faire avec le framework d'agrégation :

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

Cependant, cela ne crée pas d'objet curseur contrairement à find.