【问题标题】:How can I get a specific data from database within the range using Sequilize如何使用 Sequelize 从数据库中获取特定数据
【发布时间】:2021-08-18 19:43:42
【问题描述】:
const minPoint = 20
for (let key in modelKnowledge) {
if(modelKnowledge.hasOwnProperty(key)) {
if (minPoint == modelKnowledge[key].min_point) {
knowledgePoint = modelKnowledge[key].point
console.log(knowledgePoint)
}
}
}
This is my database
例如,我的 minPoint 是 20,所以它在数据库中的范围是 17 和 24(作为 min_point)。所以我希望它给我带来 17 点(即 0.75)。如果我的 minPoint 是 40,我希望得到 min_point 37 的点,即 2.5。我该怎么做?
【问题讨论】:
标签:
node.js
postgresql
sequelize.js
【解决方案1】:
我不确定我是否完全理解你的问题,但你可以使用sequelize operators:
await modelKnowledge.findAll({
where: {
min_point: {
[Op.gt]: minPoint // gt = greater than
}
}
}).then((results) => {
results.forEach(result => {
console.log(result.point) // This would print point from rows 2-17 in your database
}
})
使用 min_point > minPoint 获取数据库中的所有行
要仅获取某个范围内的值,您可以使用 [Op.between]:
await modelKnowledge.findAll({
where: {
min_point: {
[Op.between]: [minPoint, minPoint + 10]
}
}
}).then((results) => {
results.forEach(result => {
console.log(result.point) // This would print point from rows 2-5 in your database
}
})
根据您的要求,我认为这不是您想要的,因为您想要最接近最小点(我认为),您必须运行一个函数来获取给定范围内的最近点。