2011-10-04 56 views
0

因此,該數據是看起來像:如何在MongoDB中查詢這些數據?

{"_id":"asfasbasdf123", session:"lastAccess:1002040506, myd:'ataber244' "} 

LASTACCESS是日期。該號碼是UTC日期號碼。

我應該如何進行數據查詢與「LASTACCESS」日期超過一定天少? 「會話」變量中字符串部分的lastAccess。

謝謝。

  • 順便說一句,我的意思是命令行。
+0

這是您使用的查詢語言?來自JavaScript? – Tilo

+0

我使用命令行。但也可能需要一個帶有貓鼬的node.js解決方案。 – murvinlai

回答

1

所以第一個大問題是「爲什麼會話是字符串」

{"_id":"asfasbasdf123", session:"lastAccess:1002040506, myd:'ataber244' "} 

正如所寫,我不知道任何簡單的查詢。你基本上必須做正則表達式然後進行比較,但這不是微不足道的。

是否有可能做到以下幾點:

{"_id":"asfasbasdf123", session: { lastAccess: 1002040506, myd: 'ataber244' }} 

如果是這樣,那麼你就可以做到以下幾點:

db.sessions.find({ 'session.lastAccess' : { $lt: your_timestamp } }) 
+0

嘆息..我正在使用connect-mongo數據存儲。數據存儲爲字符串。這就是爲什麼..它有點不受我的控制。如果它不是一個字符串,但是一個對象,我知道該怎麼做,並且少一點頭痛。:( – murvinlai

+0

你可以編寫一個map-reduce函數,它將會拉出會話,將其解析爲json,將最後一次訪問轉換爲右側日期時間格式,然後進行比較 – Travis

+0

實際上,我想刪除比特定日期早的記錄,所以如果刪除記錄,Map Reduce可能不起作用。:( – murvinlai