计算"年龄" MongoDB文档DateTimeField Flask

时间:2014-10-29 21:16:56

标签: python mongodb flask

我在我的应用程序中使用python 3.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文档指南,没有帮助:

http://docs.mongoengine.org/guide/defining-documents.html

请确实帮助DateTime操作

由于

1 个答案:

答案 0 :(得分:0)

您正在寻找的功能可以是python而不是mongodb,使用property可以轻松实现:

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

但是您无法按年龄查询,因为它没有保留在您的数据库中。