我有一个Mongoose查询的小问题。我试图用其他两个引用的集合(员工和班次类型)来填充一系列班次。
一切都很好,问题是当我尝试按"employee.lastName"
键排序时。
这是我的代码:
Shift
.find()
.populate("employee", "-_id lastName firstName userID")
.populate("shift", "-_id shiftID")
.select("employee date shift")
.sort({ "employee.lastName": 1, "date": 1 })
.exec(function(err, shifts) {
res.status(200).json(shifts);
});
这是一个结果:
{
"_id": "5811b23d7b32ae2b59ce5890",
"shift": {
"shiftID": "MO123"
},
"date": "2016-10-10T00:00:00.000Z",
"employee": {
"firstName": "JOE",
"lastName": "AVERAGE",
"userID": "AJ456"
}
},
我无法按"employee.lastName"
键对结果进行排序,只是它没有按预期工作。
有没有人有线索?
答案 0 :(得分:-1)
您无法对填充字段对象进行排序。请在填充 p>上对其进行排序
Shift
.find()
.populate("employee", "-_id lastName firstName userID", null, { sort: { 'lastName': 1 } })
.populate("shift", "-_id shiftID")
.select("employee date shift")
.sort({"date": 1 })
.exec(function(err, shifts) {
res.status(200).json(shifts);
});