javascript - 不推荐使用不带 'cursor' 选项的聚合命令

标签 javascript node.js mongodb mongoose

我正在使用 mongoose 在模型上调用聚合命令。

User.aggregate({
        $match: {
            timezone: {
                $in: timezones
            }
        }
    }, {
        $group: {
            _id: '$timezone',
            "count": {
                $sum: 1
            }
        }
    })

    .exec(function (err, data) {

    if (err != null) {
            console.log("Error: " + err);
            return;
        }

        // do stuff with data
    });

但是mongo总是报错

Use of the aggregate command without the 'cursor' option is deprecated.

最佳答案

我遇到过类似的问题,经过大量研究后我发现这是由于旧版本的 Mongoose 造成的,因为早期版本与 MongoDB 3.6 及更高版本中的重大更改不兼容。

我一个一个地升级了 mongoose 版本,我发现它与 mongoose 版本 4.12.2 或更高版本 (mongoose@4.12.2) 一起工作得很好。

您可以通过运行以下命令升级您的 mongoose 版本:

npm install mongoose@4.12.2

关于javascript - 不推荐使用不带 'cursor' 选项的聚合命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46618744/

相关文章:

javascript - 返回 ("abcd") 和返回 "abcd"之间的区别?

sql - 如何等待异步完成 - NodeJs

node.js - 我定义嵌套模式,当我填充输入时,它不返回任何内容并且不保存在 Mongodb 中

javascript - 如何将 JSON 文档集合转换为 GeoJSON FeatureCollection

node.js - 如何从类(函数)创建 Mongoose 模式

javascript - 如何记录按键事件的时间?

javascript - jQuery 下一个选择行上的元素

javascript - 从 "append(<tr><td="ID 获取 ID">..."

javascript - 上传 Intent 函数 Dialogflow V2

node.js - 通过 json 对象字段中的属性进行 Mongoose 搜索