班级模特:
attributes: {
intervals: {
collection: 'interval',
via: 'classId'
}
}
区间模型:
attributes: {
classId: {
model: 'class'
},
order: {
type: 'int',
required: true
},
}
控制器
findClass: function (req, res) {
Class
.find()
.populate('intervals', {sort: 'order ASC'})
.exec(function (err, classes) {
if (err) return res.serverError(err);
return res.ok(classes);
});
}
数据示例:
"intervals": [
{
"classId": 1,
"interval": "78",
"order": "2",
"time": "30",
"incline": null,
"id": 1,
"createdAt": "2017-08-23T22:10:57.000Z",
"updatedAt": "2017-08-23T22:10:57.000Z"
},
{
"classId": 1,
"interval": "34",
"order": "1",
"time": "30",
"incline": null,
"id": 2,
"createdAt": "2017-08-23T22:10:57.000Z",
"updatedAt": "2017-08-23T22:10:57.000Z"
}
问题: 当我使用具有多个间隔或没有排序的1个类运行此代码时,间隔是正确的。但是,如果我有多个类,则会为间隔返回一个空数组。
我正在尝试返回所有类,每个类的间隔按顺序排序。
答案 0 :(得分:0)
我会回答我自己的问题。我有一个名为order的字段,它必须是底层数据库中的关键字,因此会导致问题。将排序字段更改为“intervalIndex”为我解决了这个问题。