有没有办法为mongoose.js聚合提供allowDiskUse选项?

Dan*_*ele 14 mongoose mongodb node.js aggregation-framework

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

'exception: Exceeded memory limit for $group, but didn\'t allow external sort. Pass allowDiskUse:true to opt in.'
Run Code Online (Sandbox Code Playgroud)

我似乎无法通过使用mongoose.js API来解决如何传递此选项的问题?

小智 18

我们现在没有这方面的帮助,但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() {});
Run Code Online (Sandbox Code Playgroud)

  • 如何与承诺一起使用? (2认同)

小智 14

Model.aggregate(..).allowDiskUse(true).exec(callback)
Run Code Online (Sandbox Code Playgroud)

猫鼬api