2015-12-18 55 views
0

現在我有一個日期時間對象,但它不包含所有的字段。它缺少分鐘,秒和微秒。我想用它來通過Python從MongoDB中獲取數據。我只是想知道如果pymongo會自動填寫缺失的字段並將其轉換爲ISODATE,或者它會產生一個錯誤?MongoDB會採用缺少字段的日期時間對象嗎?

編輯: 一個例子:

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}}) 
+1

你應該發佈一些你已經嘗試過的例子。根據我的經驗,如果你只有例如:2015-12-17 c#例如將使用前導零填充Datetime對象:2015-12-17 00:00:00。我最好的猜測是它會轉換爲ISODATE。 – jpgrassi

+0

@jpgrassi編輯了我的帖子。請檢查。由於Mongo列出了ISODATE中的所有內容,我不知道是否錯過了分鐘,所以會導致任何問題。 – JChao

+1

我不知道python來幫助你..但是那裏'H'聽起來對我來說是個問題。你在哪裏得到這種格式的日期?最重要的是,你是否真的試圖在Mongo中插入?如果你擔心它是否會工作,更好的發現方法就是這樣做! – jpgrassi

回答

1

在Python中,有沒有這樣的事情,與缺少的字段DateTime對象。所有的日期時間字段(與這個問題有關)總是有值。

創建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對象是相同你將有對象如果手動用零填充值,會得到結果。

既然你看到你的datetime對象沒有丟失任何東西,應該清楚mongodb如何處理它。