回调应用不是函数

回调应用不是函数

我更新到猫鼬版本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

});

最佳答案

尝试将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
    });

关于javascript - Mongoose 回调应用不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48833079/

10-10 06:17