sails populate sort不返回结果

时间:2017-08-23 20:33:32

标签: sails.js

班级模特:

  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个类运行此代码时,间隔是正确的。但是,如果我有多个类,则会为间隔返回一个空数组。

我正在尝试返回所有类,每个类的间隔按顺序排序。

1 个答案:

答案 0 :(得分:0)

我会回答我自己的问题。我有一个名为order的字段,它必须是底层数据库中的关键字,因此会导致问题。将排序字段更改为“intervalIndex”为我解决了这个问题。