有没有办法只返回mongodb投影中的属性值?例如,我有一个文件,其属性值为数组.我希望查询中的返回对象只是数组,而不是property: [ .. ].例:
文献:
db.test.insert({ name: "Andrew",
attributes: [ { title: "Happy"},
{ title: "Sad" }
]
});
Run Code Online (Sandbox Code Playgroud)
查询:
db.test.find({name: "Andrew"},{attributes:1, "_id":0});
Run Code Online (Sandbox Code Playgroud)
返回:
{ "attributes" : [ { "title" : "Happy" }, { "title" : "Sad" } ] }
Run Code Online (Sandbox Code Playgroud)
我希望它返回数组:
[ { title: "Happy"},
{ title: "Sad" }
]
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?谢谢
JSON不允许顶层成为数组,因此普通查询不允许这样做.但是,您可以使用聚合框架执行此操作:
> 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" } ]
Run Code Online (Sandbox Code Playgroud)
但是,这不会创建查找的游标对象.
| 归档时间: |
|
| 查看次数: |
8680 次 |
| 最近记录: |