我练习在django中使用mongoengine。
class RelativeTable(Document):
user = fields.ReferenceField(CustomUser)
device = fields.ReferenceField(Device, reverse_delete_rule=CASCADE)
meta = {
'collection': 'relative_table',
'allow_inheritance': True,
'indexes': [
{'fields': ['user'], 'unique': True, 'sparse': True},
{'fields': ['device'], 'unique': True, 'sparse': True},
]
}
通过多次练习。根据我对Document的定义,我发现当我删除设备时,它会同时出现RelativeTable。那么,我做对了吗?
如果我在user
中定义reverse_delete_rule
字段CASCADE
为RelativeTable
,我删除其相对user
时是否也会自动删除?
答案 0 :(得分:0)
当RelativeTable
文档的设备字段设置为reverse_delete_rule=CASCADE
时,表示如果删除了相应的设备,则RelativeTable
对象将同时被删除。
它类似于MySQL功能。当您使用SQL来定义关系字段时,例如,ManyToManyField,OneToOneField,ForeignKey。 A与B绑定.B被删除,A也被删除。