Mongoose回调适用不是一个函数

时间:2018-02-16 18:46:17

标签: javascript mongodb mongoose aggregate

我更新为mongoose版本4.10.5,但由于某种原因,现在我的聚合失败并收到以下错误:

   \node_modules\mongoose\lib\utils.js:214
            throw error;
            ^

TypeError: callback.apply is not a function
  at utils.promiseOrCallback.cb (C:\Users\Malin\Desktop\gameserver\node_modules\mongoose\lib\aggregate.js:693:14)
    at Object.promiseOrCallback (C:\Users\Malin\Desktop\gameserver\node_modules\mongoose\lib\utils.js:211:14)
    at Aggregate.exec (C:\Users\Malin\Desktop\gameserver\node_modules\mongoose\lib\aggregate.js:690:16)
    at Function.aggregate (C:\Users\Malin\Desktop\gameserver\node_modules\mongoose\lib\model.js:2809:13)

我需要编辑哪些内容才能重新开始工作?

正在执行的代码:

return Account.aggregate(
        // Limit to relevant documents and potentially take advantage of an index
        { $match: {
            haveusername: true,
        }},

        { $project: {
            total: { $add: ["$cash", "$bank"] }
        }}
    ).sort({total: -1}).limit(10).then(function (richest) {
//something else here

});

1 个答案:

答案 0 :(得分:1)

尝试将sortlimit链接方法更改为汇总调用中的各个阶段:

return Account.aggregate(
        // Limit to relevant documents and potentially take advantage of an index
        { $match: {
            haveusername: true,
        }},
        { $project: {
            total: { $add: ["$cash", "$bank"] }
        }},
        { $sort: {total: -1} },
        { $limit : 5 }
    ).then(function (richest) {
        //something else here
    });