Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MongoDB在列中按日期排序(文本)_Php_Mongodb - Fatal编程技术网

Php MongoDB在列中按日期排序(文本)

Php MongoDB在列中按日期排序(文本),php,mongodb,Php,Mongodb,我正在尝试运行一个查询,该查询返回特定日期范围内的文档 日期按如下方式存储:“Mon Feb 19 16:59:40+0000 2018”在名为“date”的列中。我知道通过运行sort{date:-1}可以按升序或降序排序,但是,我不相信MongoDB能够正确地执行这种比较 我正在考虑通过PHP脚本将所有这些日期转换为Unix时间戳,但是,必须有一种方法保持数据的原样并按日期列排序 因此,我的问题是如何运行查询来检索X和Y两个日期之间的所有文档?第二个问题,我是否最好在存储到MongoDB之前

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

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

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

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

关于第一个问题: 是的,可以这样使用骨料:

db.coll.aggregate()
  .project({
      dateTimestamp: {
         $dateFromString: {
           dateString: '$date'
        }
     //project additional necessary fields
    }
  })
  .sort({dateTimestamp:1})
第二个问题: 如果没有理由不这样做,我可能已经把它存储为日期了。使用日期可以简化查询/排序