如何在pymongo中填充?

2024-10-01 05:05:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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。一切都在工作,但速度很慢。我不喜欢这样。我要减少这两个集合的查找步骤。 我尝试了太多的方法,都无法优化这两条线。 有没有办法减少这些?在


Tags: andidmessagedbdatafindonereplace
1条回答
网友
1楼 · 发布于 2024-10-01 05:05:05

用户只能使用nosql方法直接存储预订和预订数据

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 bookingdate:
    user = data['user']
    booking_id=data["_id"]
    sendremindpush(user["devicetoken"],str(booking_id),str(message))

或者,您可以避免多个find\u one,只执行一个find查询,如下面所示,避免多个DB调用

^{pr2}$

相关问题 更多 >