sequelize中如何根据created_at排序?

Posted

技术标签:

【中文标题】sequelize中如何根据created_at排序?【英文标题】:How Sorting according to created_at in sequelize? 【发布时间】:2020-04-15 16:32:14 【问题描述】:

我正在尝试根据创建日期下订单以使用我的模型中的 created_,但每次我使用 FindAll 进行查询时,都会给我带来混乱的数据。我做了一个播种机来填充我的数据库并执行尊重测试,因为它们都是在同一日期创建的,所以即使我以递减值下订单,也会给我带来混乱的数据。我可以注意到他根据日期对我下订单,但不花时间,所以他总是以不同的顺序带我。有趣的是,我在 pgadmin 4 中打印了生成复制和粘贴的查询,我总是得到相同的结果,所以我直觉混乱不是 postgres,而是干涸本身。

查询:

const result = await this.contratoPignoraticio.findAll(
    include: [
        model: Persona,
        include: [
            model: PersonaTieneDocumentos,
            include: [
                model: Documentos,
            ]
        , 
            model: PersonaTieneRol,
            include: [
                model: Oficina,
            , 
                model: Rol,
                where: 
                    nombre: 'cliente',
                ,
            ]
        ]
    , 
        model: TipoPago,
    , 
        model: Pagos,
    ],
    order: [
        ['created_at', 'DESC'],
    ]
);

the result of a select * from the table;

堆栈:

    NestJS - 6.10.12 续集 Typescript - 0.6.11 PostgreSQL 11 pg - 7.12.1

【问题讨论】:

【参考方案1】:

您链接的图像按日期和时间的降序返回数据,对吗?如果不是,您能否详细描述一下您的问题?

【讨论】:

您好。我把你放在上下文中,以便你更好地理解我。我正在使用 findAll 来获取我的模型的所有数据,但我要求它们按降序排列,为此我使用您在我放置的查询中看到的顺序。现在为了证明一切正常,创建一个记录 100 条记录的播种机,因为下一步是对结果进行分页。 但问题是它总是给我带来不同的顺序,当我将它配置为向我显示 sequelize 生成我的查询并且我在 postgresql 中使用它时,它会正确地给我带来数据。我放置的图像显示了生成 sequelize 的查询结果,但在 json 返回的那一刻,它总是给我带来混乱,有趣的是,如果我为另一个不会发生的属性订购它。

以上是关于sequelize中如何根据created_at排序?的主要内容,如果未能解决你的问题,请参考以下文章

sequelize.js TIMESTAMP 不是 DATETIME

如何将 SQL 查询转换为 sequelize?

如何在sequelize ORM中使用从时间戳中选择并提取日期到月份和年份?

Sequelize - 如何提取具有 1 个关联记录的记录并按关联记录属性排序

Sequelize 定义 n:m 关系(import 方式)

在graphql中如何获取最后3个元素