:Sequelize如何设置返回的数据顺序

dio*_*ney 6 syntax-error node.js sequelize.js

我发布了使用限制和偏移设置findAll查询的返回数据顺序的问题,我正在使用文档中的示例代码:order: 'group DESC'但是它会抛出错误说:

Error: SQLITE_ERROR: near "group": syntax error
Run Code Online (Sandbox Code Playgroud)

这是完整的功能.

A_Model.findAll({
     offset:req.query.page * req.query.rows - req.query.rows,
     limit :req.query.rows // TODO: Of course, I put the trailing comma here ;)
     // TODO: order: 'group DESC'
    })
.success(function (docs) {
    response_from_server.records = count;
    response_from_server.page = req.query.page;
    response_from_server.total = Math.ceil(count / req.query.rows);
    response_from_server.rows = [];

    for (item in docs) {
        response_from_server.rows.push({
            id  :docs[item].id,
            cell:[
                docs[item].group,
                docs[item].description,
                docs[item].path,
                docs[item].value
            ]
        });
    }

    // Return the gathered data.
    res.json(response_from_server);
})
.error(function (error) {       
    logger.log('error', error);
});
Run Code Online (Sandbox Code Playgroud)

提前致谢.

tom*_*aug 12

你给findAll方法的"order"-string没有在Sequelize中解析,只是为了防止SQL注入而被转义."group"是一个保留关键字 一些 SQL方言,因此查询无法运行.

为了使其工作,只需将"group"列放入`s,如下所示:

A_Model.findAll({
 offset:req.query.page * req.query.rows - req.query.rows,
 limit :req.query.rows,
 order: '`group` DESC'
})
Run Code Online (Sandbox Code Playgroud)