MongoDB 会采用缺少字段的日期时间对象吗?
Would MongoDB take a datetime object with missing fields?
现在我有一个日期时间对象,但它不包含所有字段。它缺少分钟、秒和微秒。我想用它从 MongoDB 到 Python 获取数据。我只是想知道 pymongo 是否会自动填充缺失的字段并将其转换为 ISODATE,或者它会产生错误?
编辑:
一个例子:
time1='2015-12-17 23'
#assuming already imported all necessary libs
time2=datetime.strptime(time1, '%Y-%m-%d %H')
#for mongo
sq = {'$and': [something.some, {'field1':{'ne':1}}]}
sq['$and'].append({'field2': {'$gt': time2}})
在 python 中,不存在缺少字段的日期时间对象。所有日期时间字段(与此问题相关)始终具有值。
您创建的方式 time2
,您未指定的字段获得值 0,如下所示:
% time2
=> datetime.datetime(2015, 12, 17, 23, 0)
% time2.minute, time2.second, time2.microsecond
=> (0, 0, 0)
time2 == datetime(2015, 12, 17, 23, 0,0,0)
=> True
如上文所述,您的 time2
对象 与您手动用零填充值时得到的对象 相同。
既然您看到日期时间对象没有遗漏任何内容,那么应该清楚 mongodb 如何处理它。
现在我有一个日期时间对象,但它不包含所有字段。它缺少分钟、秒和微秒。我想用它从 MongoDB 到 Python 获取数据。我只是想知道 pymongo 是否会自动填充缺失的字段并将其转换为 ISODATE,或者它会产生错误?
编辑: 一个例子:
time1='2015-12-17 23'
#assuming already imported all necessary libs
time2=datetime.strptime(time1, '%Y-%m-%d %H')
#for mongo
sq = {'$and': [something.some, {'field1':{'ne':1}}]}
sq['$and'].append({'field2': {'$gt': time2}})
在 python 中,不存在缺少字段的日期时间对象。所有日期时间字段(与此问题相关)始终具有值。
您创建的方式 time2
,您未指定的字段获得值 0,如下所示:
% time2
=> datetime.datetime(2015, 12, 17, 23, 0)
% time2.minute, time2.second, time2.microsecond
=> (0, 0, 0)
time2 == datetime(2015, 12, 17, 23, 0,0,0)
=> True
如上文所述,您的 time2
对象 与您手动用零填充值时得到的对象 相同。
既然您看到日期时间对象没有遗漏任何内容,那么应该清楚 mongodb 如何处理它。