我在我的应用程序中使用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操作
由于
答案 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
但是您无法按年龄查询,因为它没有保留在您的数据库中。