繁体   English   中英

MongoDB聚合:如何在结果中提取字段

[英]MongoDB aggregation: How to extract the field in the results

所有!

我是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;
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM