我在Sequelize中关联了3个表。 使用findOne我试图检索一个房间,所有消息限制为10,并通过message_timestamp订购,但无济于事。
models.Room.findOne({
where: {
room_id: room_id
},
include: [ {
model: models.Message,
limit: 10,
offset: 0,
order: 'message_timestamp DESC'
} ] })
以上代码检索所有消息(不限于10),并且不根据message_timestamp进行排序。
有解决方案吗?我怎么能这样做呢?
谢谢。
答案 0 :(得分:2)
You cannot limit
in an includes statement in sequelize.您只能从顶级限制。考虑到这一点,你可以尝试这样的事情:
models.Message.findAll({
include [{
model: models.Room,
where: { room_id: room_id }
}]
limit: 10,
offset: 0,
order: 'message_timestamp DESC'
})
由于include
是INNER JOIN
,因此它只会检索关联room_id
= room_id