我正在对大约 300k+ 条记录的集合运行聚合,这需要多次展开和重新分组。我遇到以下错误;
'exception: Exceeded memory limit for $group, but didn\'t allow external sort. Pass allowDiskUse:true to opt in.'
我似乎无法弄清楚如何使用 mongoose.js API 传递此选项?
Model.aggregate(..).allowDiskUse(true).exec(callback)
我们现在还没有一个帮助器,但是
allowDiskUse()
帮助器函数将包含在 Mongoose 3.8.12 中,我今天将发布:https://github.com/LearnBoost/mongoose/issues /2114
如果您想要立即解决或不想升级到3.8.12(尽管建议升级),您可以执行以下操作:
var aggregation = MyModel.aggregate(...);
aggregation.options = { allowDiskUse: true };
aggregation.exec(function() {});
const agg = Model.aggregate(..).option({ allowDiskUse: true });
根据 Mongoose V6.0.4 文档为我工作这里
const data = wait Model.aggregate([..]).option({allowDiskUse: true }).explain();
来源 - Mongoose 解释 API