我有一个充满数据的数据库,包括日期和时间字符串,例如2010年9月21日,星期二14:16:17 0000
我想做的是根据日期字符串Tue,21 Sep 2010 14:16:17 0000中包含的时间从数据库中提取各种文档(记录).
从上面的日期字符串中,我将如何使用python和regex提取时间为15:00:00的文档?我正在将MongoDB与Python结合使用.
解决方法:
您可以使用$where:
db.collection.find({$where: "var d = new Date(this.dateProperty); return d.getUTCHours() == 15 && d.getUTCMinutes() == 0 && d.getUTCSeconds() == 0"})
或正则表达式:
db.collection.find({dateProperty: /.*15:00.*/})
第二个可以比第一个快一点,但是两者都相对较慢.为了加快处理速度,您可以使用内置日期格式存储日期.另外,如果您需要查询日期时间组件,请考虑添加可索引的日期表示形式,例如{y:2010,m:9,d:21,h:14,i:16,s:17}(属性取决于您的查询需求,如果您只需按小时即可查询{h:14}).然后,您可以为每个组件创建索引.