MongoDB中聚合方法的返回类型是什么?

时间:2015-03-30 09:20:59

标签: mongodb

我试图根据mongo的聚合方法得到一组结果,并根据返回我试图在所有这些中添加属性。聚合方法为我提供了最高的数量。从一个综合体的特定商店一个月内的销售额。我想将属性highestSales添加到它返回的那些文档中。我的疑问是:

var shops = db.data.aggregate([
    {
        $group: {
            _id: "$shopName",
            Sales: { $max: "$Sales" } 
        }
    }
]);

商店变量为我提供了5个商店名称,如下所示:

{ "_id" : "Shop1", "Sales" : "$83,000" }
{ "_id" : "Shop2", "Sales" : "$69,000" }..

但是,当我试图在商店中进行循环时,它不允许我添加新的属性。我假设的原因是商店不是一系列的对象。任何人都可以告知同样的返回类型是什么?这可以通过其他方式实现吗?

1 个答案:

答案 0 :(得分:0)

aggregate()方法将游标返回到聚合管道操作的最后阶段生成的文档,或者如果包含explain选项,则提供有关聚合操作处理的详细信息的文档。

您需要向商店变量添加toArray()方法,或者从aggregate()方法添加结果光标,例如

var shops = db.data.aggregate([
    {
        $group: {
            _id: "$shopName",
            Sales: { $max: "$Sales" } 
        }
    }
]).toArray();

toArray() 方法返回一个包含游标中所有文档的数组。该方法完全迭代光标,将所有文档加载到RAM中并耗尽光标。