Sequelize-SQL Server-关联表排序

Mut*_*amy 2 node.js express sequelize.js

我有3个表,如useruserProfileuserProfileImagesUseruserPrfoile尽可能多地userProfile映射,并且与userProfileImages尽可能多地映射。

我需要编写的查询顺序userProfileImages,我尝试如下,但没有运气。

User.findById(uID, { 
include: [
   model: sequelize.models.userProfile
   as: userProfile,
   include: [
    {
      model: sequelize.models.userProfileImages,
      as: 'profileImages',

    }
   ],
    order: [[sequelize.models.userProfileImages.id, "desc"]]
  // order: [["id", "desc"]] --> Tried this way also no luck
] }
Run Code Online (Sandbox Code Playgroud)

我得到了结果,但是userProfilePicture表的结果却不尽如人意。

请给解决方案

Raj*_*oit 7

从Sequelize官方文档中:

    // Will order by an associated model's created_at using an association object. (preferred method)
    [Subtask.associations.Task, 'createdAt', 'DESC'],

    // Will order by a nested associated model's created_at using association objects. (preferred method)
    [Subtask.associations.Task, Task.associations.Project, 'createdAt', 'DESC'],
Run Code Online (Sandbox Code Playgroud)

通过引用以上语法,如下更新您的订单选项

User.findById(uID, { 
    include: [
        model: sequelize.models.userProfile
        as: userProfile,
        include: [{
           model: sequelize.models.userProfileImages,
           as: 'profileImages',
        }],
        order: [['profileImages','id', 'desc']]
    ]
});
Run Code Online (Sandbox Code Playgroud)

官方文档:http : //docs.sequelizejs.com/manual/tutorial/querying.html#ordering

请参阅此线程以获取更多解决方案:https : //github.com/sequelize/sequelize/issues/4553


小智 7

像下面这样关联更新您的订单

User.findById(uID, { 
include: [
    model: sequelize.models.userProfile,
    as: userProfile,        
    include: [{
       model: sequelize.models.userProfileImages,
       as: 'profileImages',
       separate:true
       order: [['id', 'desc']]
    }],
]});
Run Code Online (Sandbox Code Playgroud)