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

Wan*_*tal 46 postgresql node.js sequelize.js

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

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

db.Page.findAll({
  include: [{
    model: db.Gallery,
    order: ['order', 'DESC'],
    include: [{
      model: db.Artwork,
      order: ['order', 'DESC']
    }]
  }],
})
Run Code Online (Sandbox Code Playgroud)

Cal*_*twr 90

我相信你能做到:

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

  • 我想吻你 (4认同)
  • 并认为我在去年一直在搞砸。 (2认同)

Rel*_*ros 21

如果您还使用'as'并假设您想按'createdDate'排序,则查询如下所示:

DbCategoryModel.findAll({
    include: [
        {
            model: DBSubcategory,
            as: 'subcategory',
            include: [
                {
                    model: DBProduct,
                    as: 'product',
                }
            ],
        }
    ],
    order: [
        [
            {model: DBSubcategory, as: 'subcategory'},
            {model: DBProduct, as: 'product'},
            'createdDate',
            'DESC'
        ]
    ]
})
Run Code Online (Sandbox Code Playgroud)


Shr*_*ant 5

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' ]
]
Run Code Online (Sandbox Code Playgroud)