簡體   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