我遇到了使用猫鼬排序的问题。我正在尝试执行返回空数组的查找,并且排序正在崩溃
jobsHandler.find({'created_at_timestamp_milliseconds': {$gte: timestamp}}).sort({'activity.activity_type':1}).exec(function(err, docs) {
if(err) {
return callback(err);
}
callback(null, docs);
});
TypeError:无法读取未定义的属性'sort'
我验证了find返回一个空数组:
jobsHandler.find({'created_at_timestamp_milliseconds': {$gte: timestamp}}, function(err, result) {
console.log(err)
console.log(result)
})
返回:
未定义
[]
如果有可能无法获得结果,您如何排序?
修改
因此,引用此问题的其他人将拥有更多上下文,jobHandler是JobModel mongoose模型的包装器。这是find类:
function find(parameters, callback) {
Job.find(parameters, callback);
}
接受的解决方案有效,因为代码在find中运行,而不是在find完成后运行。
答案 0 :(得分:1)
试试这段代码:
jobsHandler.find({'created_at_timestamp_milliseconds': {$gte: timestamp}},null,{sort:{'activity.activity_type':1}}).exec(function(err, docs) {
if(err) {
return callback(err);
}
callback(null, docs);
});