我有一个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"}})
我是否应该通过格式化时间数据来查询它?或者是否有更好的存储时间数据的方法,以便我可以只查询时间(不依赖于日期)?
答案 0 :(得分:2)
您需要以实际日期格式或数字存储数据。当您进行这些搜索时,比较使用的是lexicography订单,这不是您想要的。如果您确实想使用字符串,则应使用其中ISO formats之一。