我正在对大约300k+条记录的集合进行聚合,这需要多次展开和重组.我遇到了以下错误;

'exception: Exceeded memory limit for $group, but didn\'t allow external sort. Pass allowDiskUse:true to opt in.'

我似乎不知道如何通过使用mongoose 来传递这个选项.js API?

推荐答案

我们现在还没有一个助手,但是Mongoose 3.8.12中会包含一个allowDiskUse()助手函数,我今天将发布它:https://github.com/LearnBoost/mongoose/issues/2114

如果您想要即时解决方案或不想升级到3.8.12(尽管建议升级),可以执行以下操作:

var aggregation = MyModel.aggregate(...); 
aggregation.options = { allowDiskUse: true }; 
aggregation.exec(function() {});

Mongodb相关问答推荐

如何对嵌套在另一个数组中的数组中的字段执行查找?

MongoDB与合并对象聚合

在mongo聚合管道的组阶段排除字段,但在最后将其包含在内

MongoDB:检测所有重叠事件(开始/结束日期)?

MongoDB - 将对象转换为数组

如何使用指南针连接到 mongodb replicaset (k8s)

MongoDB:嵌套数组计数+原始文档

(MongoDB)在同一管道中结合联合和交集

如何修改 mongodb 中嵌套对象数组中的字段名称/键?

如何将查询结果(单个文档)存储到变量中?

无法提取地理键,经度/纬度超出范围

MongoDB获取聚合查询的executionStats

是否有适用于 Linux 的 MongoDB GUI 桌面应用程序?

MongoDB - 我如何找到另一个集合中的文档未引用的所有文档

如何使用 MongoDB Compass 对数据进行排序

docker 在不同的端口上运行 mongo 映像

Mongodb - 如何在多个字段中查找字符串?

未找到 MongoDB 数据/数据库

show dbs 给出Not Authorized to execute command错误

'this' 在 Mongoose 预保存挂钩中未定义