MongoDB 日期類型查詢
阿新 • • 發佈:2018-04-03
記錄 mar upload 概念 前言 AR gets 時間 oca
一、前言
MongoDB 裏面的日期類型是沒有時區概念的,默認存儲的是 ISODate("2018-04-02T13:19:16.418Z") 這種格式的零時區時間,比北京時間晚了八個小時。
工作中遇到了一個問題,怎麽查詢比當前時間小30秒之內的文檔記錄呢?
時區問題有關系嗎?日期類型要怎麽比較?怎麽表示當前時間呢?日期要怎麽實現加減呢?
二、方案
1、時區問題
其實時區問題並不是一個太需要關註的問題,因為MongoDB 提供了一個Javascript shell 窗口,支持 js 的語法。進行日期類型比較的時候,MongoDB 會自動處理 js 日期類型 和 MongoDB 日期類型間的時區問題。
2、怎麽表示當前時間
既然我們已經有了 Javascript shell 窗口,那麽表示當前時間不是一件輕而易舉的事情了嗎?直接一個 new Date() 就搞定了!
3、實現日期加減
有了 js 語法,日期的加減也不是特別難想了吧?
1 var now = new Date(); 2 now.setSeconds(now.getSeconds() - 30);
4、實現查詢
萬事俱備,只欠東風。讓我們來看看,最後的MongoDB查詢是怎麽樣的吧?
1 var now = new Date(); 2 now.setSeconds(now.getSeconds() - 30);3 db.driverLocation.find({"uploadTime":{"$gte":now}}).sort({"uploadTime":-1});
MongoDB 日期類型查詢