如何使用Sequilize从范围内的数据库中获取特定数据?


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)
}
}
}

这是我的数据库

例如,我的minPoint是20,所以它在数据库中的范围是17到24(作为min_point)。所以我想让它带我到17点(也就是0.75)如果我的minPoint是40,我想要得到min_point 37的点,也就是2.5。我怎么做呢?

我不确定我完全理解你的问题,但你可以使用序列化操作符:

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

如果要只获取一个范围内的1,可以使用[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
}
})

从你问我不认为这是你想要的,因为你想要最接近的最小点(我认为),你必须运行一个函数从给定范围获得最近的点。

最新更新