未捕获的MongoError:无法识别的字段'allowDiskUsage'

我安装了2.5.5,以便我可以尝试新的“$ out”操作符来创build具有聚合结果的新集合。 我的节点适配器是mongodb@1.3.23。 我没有“allowDiskUsage”在我的代码,但我得到这个错误:

Uncaught MongoError: unrecognized field 'allowDiskUsage' 

我需要做什么来更新我的项目运行2.5.5?

从相同的驱动程序版本的简单testing,我没有看到相同的结果:

 var MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://localhost/test', function(err, db) { if (!err) { db.collection('data', function(err, collection) { if (!err) { collection.aggregate([ {$out: "another" }, ],function(err, result) { if (err) { console.log(err); } db.close(); }); } }); } }); 

有一个allowDiskUse选项可以传递给runCommand调用进行聚合 ,但是这不会直接影响$ outpipe道操作符,因为它旨在允许这些阶段使用磁盘存储而不是单独使用内存。 您将会注意到$ out的用法是将结果放在一个输出集合中,而不是返回一个游标对象。

如果自己使用相同的代码导致相同的问题,您应该检查您安装的驱动程序版本。 从1.3.23版本到MongoDB 2.5.5服务器,这个代码按预期工作。

如果这段代码通过了,那么在你的项目中可能会有一些调用或覆盖模块实现你在错误中指定的选项。