Mongodb Meteor/Mongo未能从聚合/管道加载数据

Mongodb Meteor/Mongo未能从聚合/管道加载数据,mongodb,meteor,aggregate,pipeline,Mongodb,Meteor,Aggregate,Pipeline,服务器控制台上的错误:未经处理的PromisejectionWarning:RangeError:超过最大调用堆栈大小 流星1.8.1 项目在1.6.x和MongoDB 3.2.x下运行良好 mlab把我推到了Mongo3.6.x,现在我的一些图表(chart.js)和表格(aslagle:reactive table)无法工作 这两者都是通过聚合/管道生成的(下面的示例) 长话短说,我已经忽略了这个项目好几个月了,刚刚回到它,遇到了这个问题,并试图更新到1.8.1。这让我在mongo 4.0.

服务器控制台上的错误:未经处理的PromisejectionWarning:RangeError:超过最大调用堆栈大小

流星1.8.1

项目在1.6.x和MongoDB 3.2.x下运行良好

mlab把我推到了Mongo3.6.x,现在我的一些图表(chart.js)和表格(aslagle:reactive table)无法工作

这两者都是通过聚合/管道生成的(下面的示例)

长话短说,我已经忽略了这个项目好几个月了,刚刚回到它,遇到了这个问题,并试图更新到1.8.1。这让我在mongo 4.0.6

图表和表格仍然不起作用,我认为这是因为我缺少对聚合和/或管道中语法/结构的一些更新。我很可能是错的,因为我已经生锈了,不是一个专业开发人员,正如前面提到的,我已经几个月没碰过这个了

下面是一个失败的聚合/管道,用于绘制折线图(chart.js):

下面是另一个在aslagle中使用的:反应表:

allXteam: function(uid){
    var pipeline = [
                        { $match: {"userId": uid, "win": "true"} },
                        { $project: {team:1, match:1, play:1, Count: "$count"} },
                        { $group: 
                            {_id: "$team", 
                            play: {"$addToSet": "$play"},
                            count:{$sum:1}} 
                        }
                    ];

    return Picks.aggregate( pipeline );

},
这两个文件都位于服务器文件夹中的methods.js文件中。我在客户端js文件中使用Meteor.call来设置图表和表格所在的会话变量

如前所述,我认为我需要在我的聚合/管道中修复一些东西,但尝试添加“游标”和“解释”,并且在这种假设中不是这样做对就是错了

如果您有任何建议/指导,我们将不胜感激。

我发现:

Collection.rawCollection().aggregate().toArray()

这是我的最后一次重新分解(尽管我将不得不研究‘Meteor.wrapAsync’形式:

allXteam: async function(uid){
    var pipeline = [
                        { $match: {"userId": uid, "win": "true"} },
                        { $project: {team:1, match:1, play:1, Count: "$count"} },
                        { $group: 
                            {_id: "$team", 
                            play: {"$addToSet": "$play"},
                            count:{$sum:1}} 
                        }
                    ];

    const aXt = await Picks.rawCollection().aggregate( pipeline ).toArray();

    return aXt;

聚合命令返回的结果随Meteor 1.7更改。请参阅此处了解详细信息:感谢您的回复!我确实找到了一个与您共享的内容相匹配的解决方案,但忽略了在此处进行更新,因此,如果它对任何人都有帮助,我将其添加为下面的“答案”
allXteam: async function(uid){
    var pipeline = [
                        { $match: {"userId": uid, "win": "true"} },
                        { $project: {team:1, match:1, play:1, Count: "$count"} },
                        { $group: 
                            {_id: "$team", 
                            play: {"$addToSet": "$play"},
                            count:{$sum:1}} 
                        }
                    ];

    const aXt = await Picks.rawCollection().aggregate( pipeline ).toArray();

    return aXt;