任何想法如何在考虑此代码的基础上找到下一个即将到来的生日(基于Python / Mongoengine)
class User(mongoengine.Document):
(...)
birthday = DateTimeField()
我知道如何在纯SQL中执行此操作,但我不知道如何使用此语言执行此查询。
答案 0 :(得分:1)
保存以下内容可能会有一些好处:
class User(mongoengine.Document):
birthdate = DateTimeField()
birth_month = IntegerField()
birth_day = IntegerField()
然后查询,本月或下个月有bithrdays的每个人
current_month = datetime.now().month
current_day = datetime.now().day
next_month = (datetime.date.today() +
dateutil.relativedelta.relativedelta(months=1)).month
User.object.filter(Q(birth_month=current_month, birth_day__gte=current_day) |
Q(birth_month=next_month)).order_by('birthday')
上述内容应该是从今天到下个月末的所有生日用户。开始写一个解决方案,但失败了!,这个问题看起来似乎很难,希望有人有更清洁的解决方案