【问题标题】:MongoDB get data by comparing an hour of date objectMongoDB通过比较一个小时的日期对象来获取数据
【发布时间】:2020-06-10 09:35:40
【问题描述】:

我想通过比较日期对象的一个​​小时来获取数据。

> db.client.findOne()
  {
        "_id" : NumberLong(1),
        "clientId" : "TESTCLIENT",
        "serverType" : 17,
        "dateCreated" : ISODate("2020-06-10T15:08:02.383Z"),
        "lastUpdated" : ISODate("2020-06-10T15:08:02.383Z")
  }

从客户端集合中,我想从 dateCreated 获取 15:00 到 16:00 之间的数据(任何日期)。 为此,我尝试使用以下查询来获取数据但无法获取结果。

db.client.find({   
    "dateCreated": {     
        "$gte": 15 * 60 * 60 * 1000,
        "$lt": 16 * 60 * 60 * 1000   
    } 
})

如果有任何其他方法可以通过比较日期对象的小时数来获取结果,请告诉我。

【问题讨论】:

    标签: mongodb mongodb-query criteria


    【解决方案1】:

    为此,您可以使用 $hour 聚合:

    db.client.aggregate([
       {$match:
         {$expr:
           {$eq:[ 
                15,
                {$hour: {
                     date: "$dateCreated",
                     timezone: "GMT"
                 }}
           ]}
         }
       }
    ])
    
    
    

    【讨论】:

    • 日期可以是任何值。在这里它将成为修复 2020-06-10。谢谢
    猜你喜欢
    • 2022-07-08
    • 2019-01-31
    • 1970-01-01
    • 2022-01-22
    • 2013-09-29
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多