在某个字段上搜索集合时,我可以指定我只想返回某些字段。在只返回一个字段的情况下,假设为“_id”,find命令返回一个键:值对的数组 [{_id:123},{_ id:234},{_ id:345}] 有没有找到返回值数组的方法?如: [123,234,345]
我可以自己按摩返回的阵列,但是如果mongodb可以为我做这个,那么我宁愿让它这样做。
答案 0 :(得分:1)
为了获得这种输出,您必须使用聚合框架。即使使用聚合框架,您可以获得的最佳结果是:
{ values: [ 123, 234, 345 ] }
您必须使用$group
将所有值组合在一起。像这样:
db.collectionName.aggregate({
$group: {
values: { $push: "$_id" }
}
});
我不确定您是否需要_id
组,但如果上述方法不起作用,您可以添加它。我不确定在返回搜索后是否会比按摩它更快。