【问题标题】:MongoDB sort by date in column (text)MongoDB 按列中的日期排序(文本)
【发布时间】:2018-02-19 17:54:58
【问题描述】:

我正在尝试运行一个返回特定日期范围内文档的查询。

日期的存储方式如下:“Mon Feb 19 16:59:40 +0000 2018”在名为“date”的列中。我知道通过运行 sort {date: -1} 可以按升序或降序进行排序,但是,我认为 MongoDB 无法正确执行此比较。

我正在考虑通过 PHP 脚本将所有这些日期转换为 Unix 时间戳,但是,必须有一种方法可以保持数据不变并按日期列排序?

因此,我的问题是如何运行查询来检索两个日期 X 和 Y 之间的所有文档?第二个问题,在存储到 MongoDB 之前,我是否最好将日期预处理为 Unix 时间戳?

【问题讨论】:

    标签: php mongodb


    【解决方案1】:

    关于你的第一个问题: 是的,可以像这样使用聚合:

    db.coll.aggregate()
      .project({
          dateTimestamp: {
             $dateFromString: {
               dateString: '$date'
            }
         //project additional necessary fields
        }
      })
      .sort({dateTimestamp:1})
    

    第二个问题: 如果没有理由不这样做,我可能已经将其存储为日期。使用日期可以让您更轻松地查询/排序

    【讨论】:

      猜你喜欢
      • 2016-07-26
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多