知道如何考虑此代码如何找到下一个即将到来的生日(基于Python / Mongoengine)

class User(mongoengine.Document):
  (...)
  birthday = DateTimeField()


我知道如何在普通SQL中执行此操作,但是我不知道如何使用这种语言执行此查询。

最佳答案

保存类似的内容可能会有一些好处:

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')


上面的代码应该可以吸引从今天到下个月下一个生日的所有用户。开始编写解决方案,但失败了!,这个问题似乎很难解决,希望有人能提供更干净的解决方案

关于python - MongoEngine即将过生日,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20587896/

10-12 20:04