Mongo 日期查詢

以下介紹三種方法

使用 ISODate 比對

如果有欄位是專門記錄建立時間,且格式使用 ISODate 那麼可以使用。範例:找出建立時間 (created_at) 介於GMT+8 台灣標準時間的 01 月 01 日 00 點到 09 點的訂單編號

運算符號可以參考

  • $gt 大於
  • $gte 大於等於
  • $lte 小於等於
  • $lt 小於
  • $eq 等於
  • 其他運算符號可以參考官方

使用 new Date()

承上述方法,但是透過 Date() 可以稍微容易一點使用,相差不大。方式有這幾種:

  • new Date(“YYYY-mm-dd”) 返回具有指定日期的 ISODate。
  • new Date(“YYYY-mm-ddTHH:MM:ss”) 指定客戶端本地時區的日期時間,並返回具有 UTC 指定日期時間的 ISODate 。
  • new Date(“YYYY-mm-ddTHH:MM:ssZ”) 指定 UTC 日期時間並返回具有 UTC 指定日期時間的 ISODate。
  • new Date(integer) 將日期時間指定為自 UNIX 紀元(1970 年 1 月 1 日)以來的毫秒數,並返回 ISODate 實例的結果。

使用 _id (ObjectId) 比對

推薦。如果你的 _id 是使用預設的 ObjectId 那麼本身就已經具備時間戳記,可以配合 Date() 使用。例如找出客戶本地端的 01 月 01 日早上 10 點到 11 點的訂單。

參考文章

這個方法推薦,是因為有時候忘記添加 created_at 的時候,就可以直接使用 _id 查找。且 _id 本身已經是具有 index 因此很容易使用。

發表迴響