我有一个以前用不带_cls字段的文档填充的集合。
例如,现在我正在用这些类填充集合:
class SomeAnimal(MongoModel):
ID = fields.CharField(primary_key=True, validators=[UUID])
dob = fields.DateTimeField()
class Meta:
write_concern = WriteConcern(j=True)
collection_name = COLLECTION_NAME
class Pet(Animal):
name = fields.CharField(blank=True)并且Pet.objects.all()只返回从此脚本(具有{'_cls':'Pet'}属性)添加的文档。
有没有可能用Pymodm获取这些文档,或者这种情况打破了使用ORM的所有意义,最好切换到pymongo?
发布于 2021-01-13 03:15:27
来自文档:这是如何工作的?对于每个允许继承的模型类,pymodm都会创建另一个隐藏字段_cls,用于存储文档引用的模型的类。这样,不同类型的模型可以并置在同一个集合中,同时保留类型信息。
如果我们不想将此_cls字段存储在文档中,该怎么办?这可以通过声明模型为最终模型来实现,这意味着它必须直接从MongoModel继承,并且不能被扩展:
class PageTheme(MongoModel):
theme_name = fields.CharField()
background_color = fields.CharField()
foreground_color = fields.CharField()
class Meta:
final = Truehttps://stackoverflow.com/questions/64878041
复制相似问题