考虑到此代码(基于 Python/Mongoengine),我知道如何找到下一个即将到来的生日
class User(mongoengine.Document):
(...)
birthday = DateTimeField()
我知道如何用普通 SQL 执行此操作,但我不知道如何用这种语言执行此查询。
最佳答案
保存以下内容可能会有一些好处:
class User(mongoengine.Document):
birthdate = DateTimeField()
birth_month = IntegerField()
birth_day = IntegerField()
然后查询一下,每个人本月或下个月有两天
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/