如果我的記錄有created_date字段,是否有一種簡單的方法來獲取在7天內創建的所有記錄,而無需手動計算和添加開始日期和結束日期?是否有一種簡單的方法可以從MongoDB的最近N天獲取記錄?
3
A
回答
3
Mongo沒有像SQL NOW()
這樣的符號日期,您可以在客戶端上使用它並在服務器上進行評估。
解決您的問題的最佳方法是評估計算客戶端上的日期。在您的具體情況中,由於記錄不是在將來創建的,因此您可能只需在客戶端計算「現在減去7天」,然後在查詢中輸入該日期。
排序順便說一句,如果你需要從服務器的確切日期,你可以這樣取,
db.eval(function() { return new Date() });
使用最多的車手,你應該能夠完成,使用$eval
命令。
最後,您可以完全在服務器上使用where()
表達式完成此操作。但是,我不推薦這種方法。這樣的查詢不能利用索引,因此必須反序列化集合中的每個記錄。除非你的收藏很小,否則它們非常慢。但是,如果您想採用此方法,則可以在用於where()
表達式的JavaScript中使用new Date()
。
3
嘗試在蒙戈控制檯返回在最近7天內創建的記錄是這樣的(假設CREATED_DATE是插入日期):
> startDate = new Date() // Current date
> startDate.setDate(startDate.getDate()-7) // Subtract 7 days
> startDate.setHours(0) // Set the hour, minute and second components to 0
> startDate.setMinutes(0)
> startDate.setSeconds(0)
> db.mycollection.find({created_date:{$gte: startDate}})
相當的幾行代碼,但至少你贏了」不得不做日期算術。
相關問題
- 1. 從mongodb集合中獲取隨機記錄的最簡單和最有效的方法是什麼?
- 2. 是否有簡單的方法來搜索提取的記錄?
- 3. MongoDB是db.update更新記錄的最簡單方法嗎?
- 4. Mysql - 在記錄之前N天創建的最近記錄
- 5. 從最近的月份獲取記錄
- 6. 獲取剛剛發佈的記錄ID的最簡單方法
- 7. Skype4COM獲取所有最近的聊天記錄
- 8. 如何在SQL中獲取最近2天的所有記錄
- 9. 是否有MongoDB的最大記錄數?
- 10. 是否有一種簡單的方法可以在點擊時刪除通知?
- 11. 是否有一種簡單的方法可以使用Excel COM接口獲取Range的「A1」樣式座標?
- 12. 從PHP當天獲取最近7天的日期時間的日期記錄
- 13. 獲取最近一週的第n天的日期
- 14. 有沒有一種簡單的方法可以在C++中創建最小堆?
- 15. 是否有一種簡單的方法來記錄在Ruby對象上調用的方法?
- 16. 使用HBase獲取最近N天的所有行
- 17. 是否有一種簡單的方法可以將Pandas數據框中的一列是/否更改爲1/0?
- 18. XWork/Domino:是否有一種方法可以不記錄HTTP 500錯誤log.nsf?
- 19. SQL - 檢索最近7天的最後一天記錄
- 20. 從mongoDB獲取最後30條記錄
- 21. 是否有一種清理管道的簡單方法C
- 22. 從MySQL獲取最新記錄(7天)
- 23. 有沒有一種簡單的方法從ActiveRecord獲取PGconn的實例?
- 24. 如果超過X天,突出顯示記錄的最簡單方法是?
- 25. Java:是否有一種方法可以使用PriorityQueue從O(n)中的數組構造最大堆?
- 26. 從sql當前日期獲取最近90天的提取記錄
- 27. 用'<br>'取代'\ n'最簡單的方法是什麼?
- 28. 是否有一種方法來獲取NSMutableArray的最大值和最小值
- 29. 是否可以從Git獲取簡單的數字修訂號?
- 30. MySQL查詢獲取最近的記錄
創建一個額外的TTL收集,7天到期。 –