我正在尝试通过ajax调用在Python中执行自定义查询。
前端以unix时间发送开始时间和结束时间数据,例如1548417600000
。
然后,我在Python中转换为(ISO
时间(我认为吗?),因为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时间转换后,日期在这样的str中:
2019-01-20T04:00:00
&
2019-01-25T12:00:00
。
不确定这是否正确,但是应该通过isoformat afaik吗?
主要目标是在聚合管道中使用它。
{
"$match": {
"time":{
"date": {
"$gt":startdate,
"$lt":enddate
}
}
}
},
我正在Django应用上使用PyMongo驱动程序。
谢谢!