javascript - Sequelize - 一对多关系延迟加载并返回一个实例而不是一个集合

标签 javascript sequelize.js

寻找一种延迟加载 hasMany 关系但只返回关系的一个实例而不是集合的方法。
期望输出

{
  id: 5,
  note: 'Hello World',
  date: '2019-10-12',
}
我得到的输出
[
  {
    id: 5,
    note: 'Hello World',
    date: '2019-10-12',
  }
]
我目前拥有的代码是
....
const note = await user.getNotes({
  limit: 1,
  where: {
    date: moment('2019-10-12')
  }
});
有没有一种方法可以在延迟加载时只获取该注释的一个实例,而不是在加载该关系后必须使用 note[0]

最佳答案

最简单的方法是解构数组并将note的值设置为第一个元素:

const [ note ] = await user.getNotes({
  limit: 1,
  where: {
    date: moment('2019-10-12')
  }
});
您还可以使用 Note.findOne() 并将 user.id 传递给 where 子句。在内部,这有效地执行与上述相同的事情。
const note = await Note.findOne({
  limit: 1,
  where: {
    user_id: user.id,
    date: moment('2019-10-12')
  }
});

关于javascript - Sequelize - 一对多关系延迟加载并返回一个实例而不是一个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64454294/

相关文章:

javascript - 我想创建自己的 html 标签

javascript - 是否可以仅使用 javascript 填写 pdf 表单?

mysql - 插入行时出现“找不到表”错误。 Sequelize 和 Node.js

node.js - 调用 activator.init 后,Sequelize 急切加载会引发错误

node.js - Node Sequelize 组

node.js - SequelizeConnectionRefusedError : connect ECONNREFUSED 127. 0.0.1:4321

javascript - 来自输入字段时如何通过 javascript 函数设置文本样式

javascript - 如何仅在 Firefox 上显示/隐藏 jquery 脚本

javascript - 如何使用 javascript 编辑自定义 wordpress 帖子类型的内容?

node.js - 存储和查询具有多个相关实体的 PostgreSQL 数据库实体?