Я пытаюсь выполнить пользовательский запрос в 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.
Спасибо!