Получить документ в заданном диапазоне дат в MongoDB - PullRequest
0 голосов
/ 26 июня 2018

У меня есть база данных в 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 и диапазон для извлечения данных. Каков рекомендуемый способ достижения этого?

1 Ответ

0 голосов
/ 26 июня 2018

Вам просто нужно соответствующим образом скорректировать свой временной диапазон:

db.new_goals.find({
    request_time: {
        $gte: new Date('2018-06-19'), 
        $lt: new Date('2018-06-22')
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...