在Mongoengine中,我试图通过位于不同数据库中的文档的ReferenceField
来设置文档的id字段。
class User(Document):
name = StringField()
meta = {"db_alias": "user_db"}
class Credential(Document):
id = ReferenceField(User)
password = StringField()
meta = {"db_alias": "credentials_db"}
我可以做u = User('someuser').save()
这样的问题
Credential(u, 'somepassword').save()
变成了
ValidationError (Credential:None) (Invalid Object ID: ['auto_id_0'] Field is required: ['id'])
当然Mongodb只存储了一些ObjectIds,因此我看不出为什么这不可能,但是MongoEngine是否支持这样的东西?
答案 0 :(得分:1)
Document Ids必须是唯一的,因此您需要为primary_key
字段设置True
至id
。
class Credential(Document):
id = ReferenceField(User, primary_key=True)
...