我在 MongoDB 中有一个文档集合,它们都有一个“日期”字段,它是一个 ISO8601 格式的日期字符串(即由 moment.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"}},
]}
这“有效”吗?我需要一些有说服力的东西。
最佳答案
您肯定想使用内置的 date在date
字段上包含索引且not 字符串的数据类型。与比较 64 位整数的日期相比,字符串比较会慢得要命。
就查询而言,请查看此处的答案:
关于mongodb - MongoDB 中的 ISO8601 日期字符串(索引和查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46939430/