【问题标题】:How to sort records with particular field date mongodb?如何对具有特定字段日期mongodb的记录进行排序?
【发布时间】:2018-12-12 11:53:26
【问题描述】:

我在特定字段中有一个自定义日期,我想要按排序顺序排列的数据,但不工作,任何人都有解决方案...这是我的代码

Releases.find({ company_id }).sort( { release_date: -1 } )

这里是示例文档....

         {
                "_id": "xxxxxxxxx",
                "company_id": "xxxxxxxxx",
                "release_date": "12/11/2018"  // mm/dd/yyyy
                "datetime": "2018-12-12T14:54:41.609Z",
                "__v": 0,
            },
             {
                "_id": "xxxxxxxxx",
                "company_id": "xxxxxxxxx",
                "release_date": "12/10/2018"    // mm/dd/yyyy
                "datetime": "2018-12-12T14:55:41.609Z",
                "__v": 0,
            },
            {
                "_id": "xxxxxxxxx",
                "company_id": "xxxxxxxxx",
                "release_date": "12/12/2018"    // mm/dd/yyyy
                "datetime": "2018-12-12T14:56:41.609Z",
                "__v": 0,
            }

我想根据用户输入的日期(release_date)进行排序,任何想法。提前谢谢..

【问题讨论】:

  • 用户输入的日期是什么?发布有效载荷
  • 最好将 release_date 的格式更正为“2018-12-11”等可排序的格式。您永远不想将日期存储为特定于语言环境的字符串。
  • @JohnnyHK 我认为问题不在于日期。 OP 想用user 过去的日期进行排序。

标签: mongodb sorting mongodb-query


【解决方案1】:

您好,您使用的字段是错误的。 release_date 和 datetime 都有 String 作为它们的值。因此不是日期。因此字符串排序规则适用。 如果您将查询更改为 Releases.find({ company_id }).sort( { datetime: -1 } ) 它会起作用的。

【讨论】:

  • 它会起作用,但我想根据 release_date 进行排序,因为这个日期可能不同,例如 1 岁、1 个月等
  • 集合中有多少条记录,对存储为字符串的字符串字段进行排序绝不是一个好主意。我建议更新/添加一个日期字段,其值为 Date(released_date) 作为其值。你可以尝试一件事。如果记录是在与发布日期相同的时间创建的。然后按 _id 排序(如果是 ObjectId)
猜你喜欢
  • 2014-08-31
  • 2011-04-11
  • 1970-01-01
  • 2017-04-19
  • 1970-01-01
  • 2021-12-11
  • 2022-01-24
相关资源
最近更新 更多