【发布时间】:2018-05-20 19:16:36
【问题描述】:
我想查询 MongoDB 并返回日期为 2017 年 12 月 6 日的记录。日期格式如下:
u'Date': datetime.datetime(2017, 12, 6, 15, 9, 21, 303000)
那么,如何只查询该条目的年、月和日?我试过了:
date = db.data.find({ 'Date' : {'2017, 12, 6'} },{'Date' : '1'})
for document in date:
print(date)
返回:“InvalidDocument:无法编码对象:set(['2017, 12, 6'])”。
我也试过了:
date = db.data.find({ 'Date' : {datetime('2017, 12, 6')} },{'Date' : '1'})
for document in date:
print(date)
返回:“NameError: name 'datetime' is not defined”。
更新...解决方案 我错误地将日期放入 Mongo。我现在用 Python 将日期放入 Mongo,如下所示:
import datetime
import dateutil.parser
# the date
now = datetime.datetime.now()
year = now.year
month = now.month
day = now.day
theDate = str(year) + "-" + str(month) + "-" + str(day)
dateStr = theDate
date = dateutil.parser.parse(dateStr)
# Then put that date into your Mongo insert
这就是我按日期查询的方式。这将提取昨天(今天)之后插入的文档。
import dateutil.parser, datetime
now = datetime.datetime.now()
year = now.year
month = now.month
yesterday = now.day - 1
dateStr = str(year) + "-" + str(month) + "-" + str(yesterday)
date = dateutil.parser.parse(dateStr)
cursor = db.data.find({'Date' : { '$gt' : date}},{'Date':'1'})
for document in cursor:
print(document)
【问题讨论】: