2013-10-31 86 views
0

我試圖讓今天的蒙戈DB存儲的記錄數量與PHP和我使用下面的查詢:僅獲得今天的存儲文件

$ todayCount = $ DB- ('date'=> array('$ gt'=> strtotime('today midnight')),'b_id'=> new MongoId($ b ['_ id']))) - >計數();

但它給我0.分析後發現查詢發現它沒有給任何價值。我花了足夠的時間來解決這個問題,但無法得到任何解決方案。不知道我在哪裏做錯了。

我確實有2條今天的記錄,當我試圖設置靜態時間戳時,它只給我一條記錄,其次是NULL。

對我來說非常困惑,因爲我對Mongo DB沒有多少經驗。

+1

的strtotime返回一個UNIX時間戳你確定這類型的。數據庫中的日期字段?(MongoDB建議使用日期字段的BSON日期) – Philipp

+0

感謝Philipp的回覆。我剛剛得到了解決方案,併發布了我的答案。 – Dhaval

回答

1

我解決了這個問題。實際問題是MongoDB $ gt僅適用於字符串,而strtotime正在返回整數,這就是我得到Mongo的空響應的原因。

解決方法如下。

$ currentTime =(string)strtotime('today midnight');

$ todayCount = $ DB-> reviews->找到(陣列( '日期'=>數組( '$ GT'=> $ currentTime的, 'B_ID'=>新 MongoId($ B [ '_ ID' ))) - >計數();

它解決了我的問題,請回復,或者如果有什麼需要補充添加評論

+1

$ gt不適用於字符串只要。 它適用於所有數據類型。你的問題是你正在爲你的日期存儲一個字符串(並不是一個好主意),然後試圖將它與一個數字進行比較。 –