def day():
message ="one day is remaining to take up your food"
nextday =datetime.now() + timedelta(days= 1)
nextdaydate= nextday.strftime('X%d/X%m/%Y').replace('X0','X').replace('X','')
bookingdata =db.booking.find({"$and":[{'date':nextdaydate},{'status':'confirmed'}]})
for data in bookingdata:
user=db.users.find_one({'_id' : data["user"]},{"devicetoken":1})
booking_id=data["_id"]
sendremindpush(user["devicetoken"],str(booking_id),str(message))
这里我正在做cron任务,希望发送推送通知。所以我需要用两个集合。在
bookingdata =db.booking.find({"$and":[{'date':nextdaydate},{'status':'confirmed'}]})
在这一行,我从预订处得到日期
user=db.users.find_one({'_id' : data["user"]},{"devicetoken":1})
在for循环中的这一行中,我得到的是下一个预订的用户
booking_id=data["_id"]
在循环的这一行中,我从上面使用的预订集合中获取预订id。一切都在工作,但速度很慢。我不喜欢这样。我要减少这两个集合的查找步骤。 我尝试了太多的方法,都无法优化这两条线。 有没有办法减少这些?在
用户只能使用nosql方法直接存储预订和预订数据
或者,您可以避免多个find\u one,只执行一个find查询,如下面所示,避免多个DB调用
^{pr2}$相关问题 更多 >
编程相关推荐