node.js - 按值位置排序 findAll order

标签 node.js express sequelize.js

我正在使用 Sequelize,我想按位置值排序。我认为 Sequelize 随机给出结果。

这是我的查询:

router.post("/", (req, res) => {
    const value = req.body.value

    Titles.findAll({
        where: 
            { [Op.or]: [
                {title: { [Op.iLike]: '%' + value + '%'}},
                {titleLink: { [Op.iLike]: '%' + value + '%'}}
            ]
        },
        attributes: ['id', 'title', 'titleLink', 'entryCount'],

        ///limit: 10,
    }).then(result => {
        res.json({'titles': result})
    })
    //res.send({results: req.body})
})

它给出的结果看起来像这样

值: 测试

结果:
  • 测试标题
  • 测试标题 2
  • 测试
  • 示例测试

  • 结果(我想要):
  • 测试
  • 测试标题 1
  • 测试标题 2
  • 示例测试
  • 最佳答案

    如果 Titles 有一个 position 字段,那么您可以简单地使用 the doc 中提到的 order 属性(或使用 id 字段):

    router.post("/", (req, res) => {
        const value = req.body.value
    
        Titles.findAll({
            where: 
                { [Op.or]: [
                    {title: { [Op.iLike]: '%' + value + '%'}},
                    {titleLink: { [Op.iLike]: '%' + value + '%'}}
                ]
            },
            attributes: ['id', 'title', 'titleLink', 'entryCount'],
            order: [['position', 'ASC']],
    
            ///limit: 10,
        }).then(result => {
            res.json({'titles': result})
        })
        //res.send({results: req.body})
    })
    

    关于node.js - 按值位置排序 findAll order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59515681/

    相关文章:

    javascript - Sequelize : TypeError: Cannot read property 'length' of undefined when try to create data on DB

    javascript - 附加在无模式数组内部

    mysql - API请求后 Node 服务器不返回任何响应

    node.js - nodeJS中的重载函数调用

    javascript - 即使浏览器关闭后仍保留 cookie

    javascript - 如何确保两个客户端不会同时请求破坏状态

    node.js - 如何在 node.js 中使用 sequelize-npm 实现与连接表的一对多关系

    node.js - 为什么这个简单的 Node、Sequelize Promise 代码会挂起?

    node.js - 返回模块的 nodejs 流输出以表达路由

    javascript - 使用socket.io 和express 的多个唯一客户端