javascript - 按列名排序

标签 javascript node.js express sequelize.js

我尝试在 Sequelize 中按列名称排序

这是我的模型

var Milestones = sequelize.define('milestones', {
  milestoneId: Sequelize.INTEGER,
  data: Sequelize.JSON,
  repository: Sequelize.STRING
});

数据库是PostegreSql 9.5

var dialect = 'postgres',
    protocol = 'postgres';

var sequelize = new Sequelize(dbConfig.database, dbConfig.user, dbConfig.password, {
  host: dbConfig.host,
  dialect: dialect,
  protocol: protocol,
  dialectOptions: {
    timeout: 30
  },
  pool: {
    max: 5,
    min: 0,
    idle: 30000,
    maxConnections: 5,
    maxIdleTime: 30
  },
  logging: false
});

这是我的查询

models.Milestones.findAll({
      where: {
        repository: req.body.repository
      },
      order: 'milestoneId'
    }).then(function (values) {
      // do something
    });

这是我的错误

Unhandled rejection SequelizeDatabaseError: column "milestoneid" does not exist

所以问题是我想按 milestoneId 排序,但 Sequelize 实际上尝试按 milestoneid 排序(注意缺少驼峰式大小写)。

如果我更改为按 repository 排序,一切正常,因此此时的问题似乎与 Sequelize 转换为小写字母有关。

除了将数据库中的列重命名为小写之外,还有什么建议吗?

谢谢

最佳答案

用字段更新你的模型就可以了

var Milestones = sequelize.define('milestones', {
  milestoneId: {
    type: Sequelize.INTEGER,
    field: 'milestoneId'
  },
  data: Sequelize.JSON,
  repository: Sequelize.STRING
});

编辑:

还可以更新排序

order: ['milestoneId']

关于javascript - 按列名排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36015305/

相关文章:

javascript - 在 JavaScript 函数中获取 HTML DOM 元素

javascript - 无法让 Select2 从我的 mysql 数据库获取数据

Node.js YouTube API 上传无法转换视频

javascript - React 和 FLUX - 我将在 Web 应用程序中的哪里实现服务器例程?

javascript - 如何将模型实例与 ExpressJS、NodeJS 一起使用

javascript - Django MongoEngine CORS 错误

javascript - 通过具有多个匹配项的 prop 字符串过滤数组

node.js - 带有redis服务器的nod​​e.js中未定义的空错误?

javascript - SailsJS : POST requests are not resolved properly when invoking req. param() 和 req.file()

javascript - 查询数组对象中的自动生成 Shortid 字段在 mongodb 上不起作用?