2
在mongoengine中,如果Document從另一個Document類繼承,則會應用_cls
屬性,將其標識爲子類的實例。所有從同一個超類繼承的對象都存儲在同一個集合中。標記從超類繼承的類mongoengine
Supe(Document):
pass
Sub(Supe):
pass
而Sub的實例將有_cls="Supe.Sub"
。由於這是一個mongoengine約定,當從集合中抽取對象並返回爲JSON時,_cls
不會傳遞。當然,我總是希望與查詢相匹配的對象,但有時我想用不同的方式顯示不同的子類,並採取措施查看它們是否具有子類特定的屬性。
難道是正確標註子是這樣的:
Sub(Supe):
kind = StringField(default='sub')
...
這讓我覺得我缺少繼承mongoengine做它的方式,或至少點。