javascript - 使用 Sequelize.js findAll 对连接表中的字段进行排序的正式且正确的语法

标签 javascript node.js postgresql sequelize.js

我有两个表 - CustomerOrders 它们是一对多的关系。我正在使用 findAll() 查询两个表并尝试通过降序对 Orders.orderDate 进行排序。以下全错,结果查询错误。

错误的语法 (1)

Customer.findAll({
    order: [["orderDate", "DESC"]],
    include: [Order]
}, {
    raw: true
}).then(function(data) {
    console.log(data);
}); 
// Generated order by clause
// ORDER BY "Customer"."orderDate" DESC;

错误的语法 (2)

Customer.findAll({
    order: [["Orders.orderDate", "DESC"]],
    include: [Order]
}, {
    raw: true
}).then(function(data) {
    console.log(data);
}); 
// Generated order by clause
// ORDER BY "Customer"."Orders"."orderDate" DESC;

错误的语法 (3)

Customer.findAll({
    order: ["Orders.orderDate", "DESC"],
    include: [Order]
}, {
    raw: true
}).then(function(data) {
    console.log(data);
});
// Generated order by clause
// ORDER BY "Orders"."orderDate", "DESC";

错误的语法 (4)

Customer.findAll({
    order: ["Orders.orderDate DESC"],
    include: [Order]
}, {
    raw: true
}).then(function(data) {
    console.log(data);
});
// Generated order by clause
// ORDER BY "Orders"."orderDate DESC";

以下是我让它工作的:

Customer.findAll({
    order: '"Orders"."orderDate" DESC',
    include: [Order]
}, {
    raw: true
}).then(function(data) {
    console.log(data);
});
// Generated order by clause
// ORDER BY "Orders"."orderDate" DESC;

但是,我怀疑它不可能是正式且正确的,因为我必须手动添加双引号。在上面的错误语法示例中,表名和字段名周围的引号会自动添加。

我在 PostgreSQL 中使用 Sequelize 2.0.0-rc3。

最佳答案

我刚刚找到了正确的用法。模型对象必须在 order 选项的数组中给出。

Customer.findAll({
    order: [[ Order, "orderdate", "DESC" ]],
    include: [Order]
}, {
    raw: true
}).then(function(data) {
    console.log(data);
});
// Generated order by clause
// ORDER BY "Orders"."orderDate" DESC;

关于javascript - 使用 Sequelize.js findAll 对连接表中的字段进行排序的正式且正确的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27600450/

相关文章:

javascript - 如何在不重新加载页面的情况下加载支付成功消息

javascript - 尝试从 npm 永久安装

sql - Rails 4 按 has_many 计数排序

database - Rails 上所有请求中的随机 "SELECT 1"查询

javascript - 单击按钮调用服务功能不会更新 View

javascript - 什么是和谐,什么是和谐输出?

node.js - loopback 4中如何编写单元测试用例

node.js - Knex 迁移不创建表

java - 使用java中变量传递的名称创建一个模式

javascript - 位置 :relative moving image to foreground