MongoDB聚合:如何提取结果中的字段
MongoDB aggregation: How to extract the field in the results
all!
我是MongoDB聚合的新手,聚合后,我终于得到了结果:
"result" : [
{
"_id" : "531d84734031c76f06b853f0"
},
{
"_id" : "5316739f4031c76f06b85399"
},
{
"_id" : "53171a7f4031c76f06b853e5"
},
{
"_id" : "531687024031c76f06b853db"
},
{
"_id" : "5321135cf5fcb31a051e911a"
},
{
"_id" : "5315b2564031c76f06b8538f"
}
],
"ok" : 1
数据正是我想要的,但我只想更进一步,我希望我的数据会显示为这样:
"result" : [
"531d84734031c76f06b853f0",
"5316739f4031c76f06b85399",
"53171a7f4031c76f06b853e5",
"531687024031c76f06b853db",
"5321135cf5fcb31a051e911a",
"5315b2564031c76f06b8538f"
],
"ok" : 1
是的,我只想在一个纯字符串数组中获得所有唯一的id,我能做些什么吗?任何帮助都将不胜感激!
所有MongoDB查询都会在结果文档中生成"键/值"对。所有MongoDB内容基本上都是这种形式的BSON文档,它只是由驱动程序"翻译"回其实现语言的本地代码形式。
因此,聚合框架本身永远不会产生一个只包含您想要的值的裸数组。但你总是可以转换结果的数组,因为毕竟它只是一个数组
var result = db.collection.aggregate(pipeline);
var response = result.result.map(function(x) { return x._id } );
还要注意,shell中的默认行为和首选选项是,聚合结果实际上是作为MongoDB 2.6及以后版本的游标返回的。由于这是以列表形式而不是作为一个不同的文档,您将以不同的方式处理:
var response = db.collection.aggregate(pipeline).map(function(x) {
return x._id;
})
相关文章:
- 我有一个字段计算,如果结果低于 60,则需要显示最小值
- Javascript:如何使自动建议的结果在单击时移动到输入字段中
- 使用jquery UI next按钮提交输入字段值,php将返回结果
- 在不使用200行var的情况下,在结果字段中添加顺序命名的变量?[PDF表格]
- 如何重置AJAX结果输入字段
- 如何将自定义字段添加到Json结果-ASP.NET MVC
- AJAX请求结果为空-清除我们的HTML输入字段
- 如何使用 couchdb 列表函数从 couchdb 视图结果中获取特定字段
- 将信息结果返回到多个输入字段
- 隐藏的“纬度”和“lng”字段没有被删除,所以我的脚本仍在从不正确的地理位置中搜索纬度和液化天然气结果
- 在 Sails.js(吃水线)中的嵌套字段(关系内)上的搜索结果
- 文本(输入)字段中的 HTML 显示结果
- jQuery-UI - 多个自动完成字段共享结果
- Angular2 表单:在控制台上获取“对象”作为输入字段 element.value 的结果
- 在表单中搜索字段,然后对所有选定的结果执行某些操作
- 合并来自多个字段输入的搜索结果
- 如何使用 jQuery 将变量从隐藏字段发送到远程 PHP 文件,并在引导模式中显示脚本的结果,而无需刷新
- Mongoose/MongoDB 结果字段在 Javascript 中显示为未定义
- 输入中的条目应在结果字段中逐个显示添加的结果
- 不知道为什么日期选择器小部件不能工作,也不知道为什么id选择器不能自动填充结果字段