我想通过比较日期对象的一个小时来获取数据。
> 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
}
})
请告诉我是否有其他方法可以通过比较日期对象的小时数来获得结果。
你可以用 小时 为此。
db.client.aggregate([
{$match:
{$expr:
{$eq:[
15,
{$hour: {
date: "$dateCreated",
timezone: "GMT"
}}
]}
}
}
])