2012-08-08 61 views
7

在mongoengine中,必須在ReferenceField中設置什麼值。我的意思是我們應該在提供引用的文檔的「ObjectId」中提供。 例如,mongoengine-什麼是referencefield商店

class Bar(Document): 
    content = StringField() 
    foo = ReferenceField('Foo') 

類酒吧的對象應該具有在「foo」的屬性是什麼值設置爲。它應該是'Foo'集合中某個文檔的ObjectId嗎? 我也可以設置任何其他唯一字段作爲參考字段中的值提及它是哪個字段?

回答

10

在MongoEngine 0.8版之前,它默認存儲DBRef。對於0.8及更高版本,它默認存儲一個ObjectId。

有一個dbref參數創建ReferenceField(explicit is better than implicit)時,應使用:

class Bar(Document): 
    content = StringField() 
    foo = ReferenceField('Foo', dbref = True) # will use a DBRef 
    bar = ReferenceField('Bar', dbref = False) # will use an ObjectId 

這裏的documentation for the 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) 
+0

好的,感謝您的更新朋友:) – 2013-04-04 10:18:33

相關問題