即将到来的MongoEngine生日

时间:2013-12-14 20:28:08

标签: python mongodb mongoengine

任何想法如何在考虑此代码的基础上找到下一个即将到来的生日(基于Python / Mongoengine)

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

我知道如何在纯SQL中执行此操作,但我不知道如何使用此语言执行此查询。

1 个答案:

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

上述内容应该是从今天到下个月末的所有生日用户。开始写一个解决方案,但失败了!,这个问题看起来似乎很难,希望有人有更清洁的解决方案