如何在字符串字段中存储ISO日期的MongoDB集合上查询日期范围?

时间:2013-05-25 09:49:25

标签: json mongodb mongodb-query bson node-mongodb-native

情景:请考虑我有一个名为MyCollection的集合,其中包含以下数据:

{
    "_id" : 'MyUniqueID_01'
    "CreatedTime" : "2013-12-01T14:35:00Z",
    "LastModifiedTime" : "2013-12-01T13:25:00Z"
}

现在我想查询MongoDB数据库,其中上述类型的数据存在于大量文档中。我的查询基于日期范围,即使用$gt$gte$lt& $lte

所以我的查询可能是这样的:

db.MyCollection.find({ 'CreatedTime': {$gt: '2013-05-25T09:29:40.572Z'}})

考虑到上述示例预期结果,查询必须获取文档(因为“CreatedTime”:“2013-12-01T14:35:00Z”大于查询'2013-05-25T09中传递的值: 29:40.572Z');但事实并非如此,问题是字段CreatedTime是字符串格式。

问题:有没有什么方法可以在不更改字符串字段类型的情况下完美地获得我的预期结果?

1 个答案:

答案 0 :(得分:9)

您可以完全按照示例中的说明进行查询。

字符串排序是一致的,它会为您提供所需的确切关系。