MongoDB按列排序(文本)

问题描述 投票:1回答:1

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

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

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

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

php mongodb
1个回答
2
投票

关于你的第一个问题:是的,可以使用如下聚合:

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

第二个问题:如果没有理由,我可能会将它存储为日期。使用日期可以更轻松地查询/排序

© www.soinside.com 2019 - 2024. All rights reserved.