【问题标题】: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
      }
    })
    

    根据您的要求,我认为这不是您想要的,因为您想要最接近最小点(我认为),您必须运行一个函数来获取给定范围内的最近点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 2020-09-07
      相关资源
      最近更新 更多