簡體   English   中英

如何僅在當天每4個小時查詢一次mongo

[英]How to query mongo for every 4 hour for that day only

我只想查詢將僅提供過去4小時結果的節點中的mongo,當天應該給我添加的結果計數7:00-11:00,然后11:00-3:00,然后3:00- 7:00像這樣。

我嘗試為每個時間間隔編寫不同的mongo查詢。 我想運行相同的查詢,該查詢將提供過去4個小時的數據。

db.CollectionName.find({"created_at": {
    '$gte': moment().startOf('day').toDate(),
    '$lt': moment(today).endOf('day').toDate()
}});

用相同的查詢運行。 我想要三種不同的計數,即一次為7-11am,然后為11-3pm,然后為3-7pm。

運行此查詢以獲取基於今天日期的每小時結果

在7:00-11:00(7:00至10:59:59)間隔內獲取數據

db.CollectionName.aggregate([
              {$project:{hour:{$hour:"$added_on"},title: 1,added_on:1}}, 
              {$match:{
                 hour:{"$in":[7,10]},
                 added_on: { $gte: new Date(new Date().setUTCHours(0,0,0,0)) , $lte:  new Date(new Date().setUTCHours(23,59,59,999))  } 
                 }
               }
              ])

在11:00-15:00(11:00至14:59:59)間隔內獲取數據

db.CollectionName.aggregate([
              {$project:{hour:{$hour:"$added_on"},title: 1,added_on:1}}, 
              {$match:{
                 hour:{"$in":[11,14]},
                 added_on: { $gte: new Date(new Date().setUTCHours(0,0,0,0)) , $lte:  new Date(new Date().setUTCHours(23,59,59,999))  } 
                 }
               }
              ])

在15:00-19:00(15:00至18:59:59)間隔內獲取數據

 db.CollectionName.aggregate([
              {$project:{hour:{$hour:"$added_on"},title: 1,added_on:1}}, 
              {$match:{
                 hour:{"$in":[15,18]},
                 added_on: { $gte: new Date(new Date().setUTCHours(0,0,0,0)) , $lte:  new Date(new Date().setUTCHours(23,59,59,999))  } 
                 }
               }
              ])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM