我更新为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
});
答案 0 :(得分:1)
尝试将sort
和limit
链接方法更改为汇总调用中的各个阶段:
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
});