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

Jyo*_*Pan 6 mongodb

我试图根据 mongo 的聚合方法获得一组结果,并根据返回我试图在所有结果中添加一个属性。聚合方法为我提供了最高的编号。一个月内某个综合体中特定商店的销售额。我想向它返回的那些文档添加一个属性highestSales。我的查询是:

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

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

{ "_id" : "Shop1", "Sales" : "$83,000" }
{ "_id" : "Shop2", "Sales" : "$69,000" }..
Run Code Online (Sandbox Code Playgroud)

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

chr*_*dam 5

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

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

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

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