Python 计算;年龄“;MongoDB文档日期时间字段

Python 计算;年龄“;MongoDB文档日期时间字段,python,mongodb,flask,Python,Mongodb,Flask,我的应用程序使用Python3.4和flask 0.10以及MongoDB 2.6标准。使用mongo文档。我想用人的生日来计算“年龄”或“年”。我有以下代码: import datetime from Personal import db class Person(db.Document): ID = db.StringField(required=True, primary_key=True, unique=True, max_length=6) name = db.Str

我的应用程序使用Python3.4和flask 0.10以及MongoDB 2.6标准。使用mongo文档。我想用人的生日来计算“年龄”或“年”。我有以下代码:

import datetime
from Personal import db

class Person(db.Document):
    ID = db.StringField(required=True, primary_key=True, unique=True, max_length=6)
    name = db.StringField(required=True)
    birthday = db.DateTimeField(required=True)
    age = ########
我试过了

age = int(datetime.datetime.now.year) - int(birthday).year
我知道这是错误的。我已经阅读了Mongo文档指南,但没有帮助:

请确实帮助我们进行日期时间操作


谢谢

您正在寻找的功能可能是python而不是mongodb,使用
属性
您可以非常轻松地实现:

class Person(db.Document):
    ID = db.StringField(required=True, primary_key=True, unique=True, max_length=6)
    name = db.StringField(required=True)
    birthday = db.DateTimeField(required=True)

    @property
    def age(self):
        return ((datetime.datetime.now() - self.birthday).days) / 365
使用该类,您可以执行以下操作:

>>> p = Person(name='rafael', birthday=datetime.datetime(year=1990, day=1, month=1))
>>> p.age
24

但是您不能按年龄进行查询,因为它没有保存在您的数据库中。

您使用的是mongo引擎吗?是的,我使用的是MongoEngineHanks,请帮我一个忙:)。现在我必须想办法把它存储在我的数据库里。@YecidYahuita为什么要存储?我相信你可以在生日那天询问你是否想得到某个年龄段的人。当然,您需要专门为$gte/$lte创建一个查询,但这是可能的。请您提供一个带有$gte/$lte文档的链接。谢谢