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
MongoDB中的ISO8601日期字符串(索引和查询)_Mongodb_Date - Fatal编程技术网

MongoDB中的ISO8601日期字符串(索引和查询)

MongoDB中的ISO8601日期字符串(索引和查询),mongodb,date,Mongodb,Date,我在MongoDB中有一个文档集合,所有文档都有一个“date”字段,这是一个ISO8601格式的日期字符串(即,由矩.js format()方法创建) 我希望能够高效地对这个集合运行查询,以表达“日期在a之后和B之前的文档”(即日期范围内的文档)的感觉 我是否应该将日期存储为ISO-8601字符串以外的内容?根据这个答案,对于我前面提到的需求,MongoDB查询操作会是什么样子?我的设想是: {$and: [ {date: {$gt: "2017-05-02T03:15:22-04:00"

我在MongoDB中有一个文档集合,所有文档都有一个“date”字段,这是一个ISO8601格式的日期字符串(即,由矩.js format()方法创建)

我希望能够高效地对这个集合运行查询,以表达“日期在a之后和B之前的文档”(即日期范围内的文档)的感觉

我是否应该将日期存储为ISO-8601字符串以外的内容?根据这个答案,对于我前面提到的需求,MongoDB查询操作会是什么样子?我的设想是:

{$and: [
  {date: {$gt: "2017-05-02T03:15:22-04:00"}},
  {date: {$lt: "2017-06-02T03:15:22-04:00"}},
]}

这“管用”吗?我需要一些令人信服的信息。

您肯定希望使用内置数据类型,在
日期
字段和而不是字符串上使用索引。与只比较64位整数的日期相比,字符串比较将非常缓慢

关于查询,请在此处查看答案: