javascript - 未捕获的 MongoError : unrecognized field 'allowDiskUsage'

标签 javascript node.js mongodb aggregation-framework

我安装了 2.5.5,以便我可以尝试新的“$out”运算符来创建具有聚合结果的新集合。我的 Node 适配器是 mongodb@1.3.23。我的代码中没有“allowDiskUsage”,但出现此错误:

Uncaught MongoError: unrecognized field 'allowDiskUsage'

我需要做什么才能更新我的项目以运行 2.5.5?

最佳答案

通过对同一驱动程序版本的简单测试,我没有看到相同的结果:

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 有一个选项,可以传递给 aggregaterunCommand 调用,但这并不会直接影响 $out管道运算符,因为它的目的是允许阶段使用磁盘存储而不是单独的内存。正如您所知,$out 的用法是将结果放入输出集合中,而不是返回游标对象。

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

如果此代码通过,则项目中可能存在某些调用或重写模块正在实现您在错误中指定的选项。

关于javascript - 未捕获的 MongoError : unrecognized field 'allowDiskUsage' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21800844/

相关文章:

javascript - 使用 AJAX 和 jQuery 完成表单输入

javascript - 在中国提供 REST API 的云存储提供商

node.js - 在 node.js 中使用 "natural"模块

javascript - MongoDb 通过 Node.js native 驱动程序插入未插入

javascript - 包含 JS 文件的替代方法

javascript - Python Crawling Pastebin(JavaScript 呈现的网页)

javascript - Redis 客户端不删除任何东西

javascript - Node.JS/Javascript - 将字符串转换为整数会返回 NaN,而我不希望它返回

node.js - AWS Lambda(Node.js,8.10 版)和 Mongoose : MongoNetworkError connection to DB timed out

mongodb - 我应该保留什么 setLimit(int64) 方法来显示 Collections 中的所有记录