2012-04-17 57 views
0

我正在尋找從一個特定的日期從一個MongoDB提取。 因爲我在發送查詢的Talend中使用了一個組件,所以我不能使用多行代碼。MongoDB的日期限制查詢

你可以直接在查找方法中做日期限制嗎?

db.example.find({ ts: { $gt: lowdate} }); 

哪裏可以用lowdate替代我希望你們中的任何人都能弄清楚的東西。

非常感謝!

PS。 MongoDB中的日期格式(如果有的話)是「2011年12月16日7:37:06 PM」。

---更新--- 從我的MongoDB:

, 「TY」: 「身份驗證」, 「TS」: 「二零一一年十二月十六日下午3時28分01秒」,

這表明時間戳(ts)的格式是一個字符串。正確?

+0

呀,似乎是一個字符串。這限制了你有效查詢的能力:) – 2012-04-17 11:17:54

回答

0

如果日期以該格式存儲爲字符串,則將無法進行查詢。爲了解決這個問題,我建議你用你最喜歡的語言編寫一個腳本來掃描所有文檔,並將這個日期字符串轉換爲時間戳。您可以覆蓋「ts」字段,也可以創建一個新的f.e.稱爲「ts_int」的東西。

例如,在PHP你會做:

<?php 
$m = new Mongo(); 
$c = $m->mydbname->example; 

foreach ($c->find() as $item) 
{ 
    $item['ts_int'] = strtotime($item['ts']); 
    $c->update($item); 
} 
?> 
+0

謝謝!由於這仍然在開發中,我會看看日期是否可以存儲爲日期或甚至unix時間戳。 – Geuder 2012-04-17 16:16:54