在 Django 中通过 mongoengine 自动删除引用对象

Automatically remove referencing objects on deletion by mongoengine in django

我正在练习在 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_ruleRelativeTable 中的 CASCADE,当我删除它的相关 user 时,它是否也会自动删除?

deleting-embeddeddocument-with-filefield-from-listfield

mongoengine.fields.ReferenceField

当你的RelativeTable文档的device字段设置为reverse_delete_rule=CASCADE时,表示如果删除对应的Device,RelativeTable对象也会同时删除

它类似于 MySQL 功能。当您使用 SQL 定义关系字段时,例如 ManyToManyField、OneToOneField、ForeignKey。 A绑定B,B被删除,A也被删除