在mongo的时间范围内查询

时间:2012-06-18 16:10:30

标签: python mongodb pymongo

我有一个mongo数据库,我将日期和时间存储在不同的字段中(我无法更改此设置)。谷歌搜索,我发现人们查询日期和时间的例子,将字段分成两部分,1表示日期,1表示时间,如:

{"dateField": {"d": "06/18/2012" "t": "12:00:00 AM"}}
{"timeField": {"d": "06/18/2012" "t": "12:07:10 PM"}}

我见过人(并且能够自己)查询日期部分:

db.collection.find({"dateField.d": {"$gte": "06/18/2012"}})

我的问题是随着时间的推移我无法获得准确的结果:

db.collection.find({"timeField.t": {"$gte": "12:00:00 PM"}})

我是否应该通过格式化时间数据来查询它?或者是否有更好的存储时间数据的方法,以便我可以只查询时间(不依赖于日期)?

1 个答案:

答案 0 :(得分:2)

您需要以实际日期格式或数字存储数据。当您进行这些搜索时,比较使用的是lexicography订单,这不是您想要的。如果您确实想使用字符串,则应使用其中ISO formats之一。