寻找一种延迟加载 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/