Опрос Mongodb по диапазону меток времени Unix - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь выполнить пользовательский запрос в Python с помощью вызова ajax.

Интерфейс отправляет данные времени начала и окончания в unix-времени, например, 1548417600000.Затем я конвертирую в (ISO) время (как мне кажется?) В Python, потому что именно это MongoDB предпочитает afaik.

Пример документа:

{
    "_id" : ObjectId("5c125a185dea1b0252c5352"),
    "time" : ISODate("2018-12-13T15:09:42.536Z"),
}

PyMonogo ничего не возвращает, однаконесмотря на знание того, что должны быть тысячи результатов.

@login_required(login_url='/login')
def querytimerange(request):
    print("Expecto Patronum!!")
    if request.method == 'POST':
        querydata = lambda x: request.POST.get(x)
        colname = querydata('colname')
        startdate = querydata('start')
        enddate = querydata('end')
        startint = int(startdate)
        endint = int(enddate)
        dtstart = datetime.utcfromtimestamp(startint/1000.0)
        iso_start = str(dtstart.isoformat())
        print(iso_start)
        dtend = datetime.utcfromtimestamp(endint/1000.0)
        iso_end = str(dtend.isoformat())
        print(iso_end)
        collection = db[colname]

        data = collection.find({"time": {"$gt": iso_start,"$lt": iso_end}})

        for a in data:
            print(a)

        return JsonResponse({"ok": "ok"})

    else:

        return JsonResponse({"ok": "no"})

Так что да, я думаю, я изо всех сил пытаюсь получить правильный формат дат.После конвертации из времени Unix, дата в такой строке выглядит следующим образом:

2019-01-20T04:00:00 & 2019-01-25T12:00:00.

Не уверен, что это правильно, но это должно быть изоформатом afaik?

Основная цель - использовать его в конвейере агрегации.

        {
            "$match": {
                "time":{
                    "date": {
                        "$gt":startdate,
                        "$lt":enddate
                    }
                }
            }
        },

Я использую драйвер PyMongo в своем приложении Django.

Спасибо!

...