在 MongoEngine 0.8 版本之前,它默认存储一个 DBRef。对于 0.8 及更高版本,它默认存储一个 ObjectId。
dbref
创建 ReferenceField 时应该使用一个参数(显式优于隐式):
class Bar(Document):
content = StringField()
foo = ReferenceField('Foo', dbref = True) # will use a DBRef
bar = ReferenceField('Bar', dbref = False) # will use an ObjectId
这是ReferenceField 的文档。
我安装了 0.7.9 版,当我创建没有参数的 ReferenceField时dbref
,我收到以下警告:
[...]/lib/python2.7/site-packages/mongoengine/fields.py:744: FutureWarning:
ReferenceFields will default to using ObjectId strings in 0.8, set DBRef=True
if this isn't desired
warnings.warn(msg, FutureWarning)