簡體   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