2

我有一个 mongo 数据库,我将日期和时间存储在单独的字段中(我无法更改此设置)。谷歌搜索,我发现人们通过将字段分成 2 个部分来查询日期和时间的示例,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"}})

有没有一种特定的方式我应该格式化我的时间数据来查询它?或者有没有更好的方法来存储时间数据,以便我可以只查询时间(而不依赖于日期)?

4

1 回答 1

2

您需要以真实的日期格式或数字存储数据。当您进行这些搜索时,比较使用的词典顺序不是您想要的。如果您确实想使用字符串,您应该使用其中一种适用的ISO 格式

于 2012-06-18T16:30:59.030 回答