node.js - 从 Sequelize 获取最近发送消息的用户列表

标签 node.js sequelize.js

我有两个模型,命名用户和消息。它基本上是一个聊天应用程序。模型关联如下:

User.hasMany(Message);
Message.belongsTo(User);

User-> id, name, pic
Message-> id, text, timestamp, user_id (foreign key)

我想获取最近给 发送消息的用户的 列表。这是我尝试过的:
DB.User.findAll({
 include: [{
  model: DB.Message,
  order: [
   ['timestamp', 'DESC']
  ],
  limit: 1
 }]
});

SQL 查询可能如下所示:

SELECT U.first_name, user_id, MAX(timestamp) FROM messages M, users U WHERE M.user_id=U.id GROUP BY user_id

最佳答案

试试这个

DB.User.findAll({
 include: [ { model: DB.Message, required: true,order:['id','DESC']}]
});

关于node.js - 从 Sequelize 获取最近发送消息的用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47219444/

相关文章:

javascript - 持续关注 NodeJS 中的文件变化

node.js - 用户如何使用 sequelize postgres nodejs 来喜欢和不喜欢彼此的帖子?

node.js - 使用 Passport js 进行身份验证时 Sequelize Js 错误(facebook)

node.js - Sequelize 模型中的继承

mysql - 如何在 Sequelize 中获取更新行的字段和值

typescript - Sequelize 更新到 v4 抛出错误 : models. 用户似乎是一个函数

node.js - Node/MySQL2/bluebird promise 不工作

node.js - 类型错误 : stream is undefined

json - NodeJS 请求在 AWS Lambda 中未给出任何响应

node.js - Sequelize - 仅返回关系