订购Node Sequelize中的加载模型的结果

我有一套复杂的关联模型。 这些模型使用连接表进行关联,每个连接表都有一个名为“order”的属性。 我需要能够查询父模型的“页面”并包含关联的模型,并按字段“顺序”对这些关联进行sorting。

以下是对结果的sorting顺序没有影响:

db.Page.findAll({ include: [{ model: db.Gallery, order: ['order', 'DESC'], include: [{ model: db.Artwork, order: ['order', 'DESC'] }] }], }) 

我相信你可以做到:

 db.Page.findAll({ include: [{ model: db.Gallery include: [{ model: db.Artwork }] }], order: [ [ db.Gallery, 'order', 'DESC' ], [ db.Gallery, db.ArtWork, 'order', 'DESC' ] ] }) 

如果您还使用“as”,并假设您想通过“createdDate”进行sorting,则查询如下所示:

 DbCategoryModel.findAll({ include: [ { model: DBSubcategory, as: 'subcategory', include: [ { model: DBProduct, as: 'product', } ], } ], order: [ [ {model: DBSubcategory, as: 'subcategory'}, {model: DBProduct, as: 'product'}, 'createdDate', 'DESC' ] ] }) 
 order: [ [ db.Sequelize.col('order'), 'DESC'], /*If you want to order by page module as well you can add this line*/ [ db.Gallery, db.ArtWork, 'order', 'DESC' ] ]