繁体   English   中英

在 mongoengine 中通过 ReferenceField 设置文档 ID

[英]Setting Document id by ReferenceField in mongoengine

在 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 支持这样的东西吗?

文档 ID必须是唯一的,因此您需要将id字段的primary_key设置为True

class Credential(Document):
    id = ReferenceField(User, primary_key=True)
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM