MongoDB:按日期时间查询部分日期时间
问题描述:
我在有日期的mongodb中有很多数据。通常这些日期在任何日期,但在10:00:00和22:00:00之间。MongoDB:按日期时间查询部分日期时间
因为我发现在超出上述范围的时候会出现一些奇怪的行为,所以我想要一个查询返回每个不在10:00:00和22:00:00之间的文档。有没有办法在MongoDB中做到这一点?
例如按时间部分查询日期?
答
查询是上午12点29分以后有时间的文档,我的解决办法是:
(event_start是isodatetime)
I)项目小时和分钟
{'$project': {'_id': 1,
'hour': {'$hour': '$event_start'},
'minute': {'$minute': '$event_start'}}},
II)赛后说:`
{'$match': {'$or': [
{'hour': {'$gt': 12}},
{'$and': [{'hour': {'$eq': 12}},
{'minute': {'$gte': 30}}
]}]}}
源 - >Link
提示:'$ project'您的文档,并使用[日期操作符](https://docs.mongodb.com/v3.2/reference/operator/aggregation-date/)返回每个文档的时间。从那里,你可以在'$ match'阶段过滤你的文档。 – styvane