我在MongoDB中有一个名为goalsdata
的数据库。有一个集合new_goals
。该文档看起来像
{
"_id" : ObjectId("5b2d0f71ee19fb0021e0000f0"),
"method" : "GET",
"action" : "goals",
"request_time" : ISODate("2018-06-21T15:02:09.784Z")
},
{
"_id" : ObjectId("5b2d0f71ee19fb0031e0000f0"),
"method" : "GET",
"action" : "goals",
"request_time" : ISODate("2018-06-22T15:03:09.784Z")
},
{
"_id" : ObjectId("5b2d0f71ee19fb0041e0000f0"),
"method" : "GET",
"action" : "goals",
"request_time" : ISODate("2018-06-23T15:02:08.784Z")
},
{
"_id" : ObjectId("6b2d0f71ee19fb001e0000f0"),
"method" : "GET",
"action" : "goals",
"request_time" : ISODate("2018-06-24T15:02:07.784Z")
},
{
"_id" : ObjectId("8b2d0f71ee19fb001e0000f0"),
"method" : "GET",
"action" : "countries_goals_exams",
"request_time" : ISODate("2018-06-26T15:02:06.784Z")
}
有一个名为request_time
的钥匙。我要查询并获取request_time
范围在2018-06-19
至2018-06-21
之间的文档。
因此,2018-06-19
request_time
不存在。因此,它将考虑给定范围并向我显示输出,
{
"_id" : ObjectId("5b2d0f71ee19fb0021e0000f0"),
"method" : "GET",
"action" : "goals",
"request_time" : ISODate("2018-06-21T15:02:09.784Z")
}
我可以使用此查询在MongoDB中获取最近一小时前的数据,
db.getCollection('new_goals').entity.find({ $and:[
{
"timestamp": {
$gte: new Date(ISODate().getTime() - 1000 * 60 * 60)
}},
{
"timestamp": {
$lte: ISODate()
}}
]})
但是,我想使用键request_time
和范围来获取数据。推荐的实现方法是什么?
答案 0 :(得分:1)
您只需要相应地调整时间范围:
db.new_goals.find({
request_time: {
$gte: new Date('2018-06-19'),
$lt: new Date('2018-06-22')
}
})