我有一段代码可以找到数值字段“ordinal”中具有最高值的记录:
Job.find({}).sort({'ordinal': -1}).limit(1).then(maxOrd => {
console.log(`Found MaxOrd: ${maxOrd}`);
});
这很好。现在,我想使它成为
Job
模式的静态方法。因此,我尝试:JobSchema.statics.findMaxOrdinal = function(callback) {
Job.find({}, callback).sort({'ordinal': -1}).limit(1);
};
...和:
Job.findMaxOrdinal().then(maxOrd => {
console.log(`Found Max Ord using Promise: ${maxOrd}`);
});
但这不起作用,并且由于非常无用的堆栈跟踪而崩溃。
我该如何编写我的static,以便可以在Promise中使用它?
最佳答案
只需返回 Mongoose 查询,像这样:
JobSchema.statics.findMaxOrdinal = function() {
return Job.find({}).sort({'ordinal': -1}).limit(1);
};