【发布时间】:2020-07-20 00:01:24
【问题描述】:
我有映射以下关系的 Mongoengine ORM,(简化):
class UserInfo(mg.Document):
username = mg.StringField()
allcharacters = mg.ListField(mg.ReferenceField("Character"))
pass
class Character(mg.Document):
charid = mg.IntField()
pass
用户指的是对字符的引用数组。问题是当我访问用户的 allcharacter 数组并删除一个引用时:
for x in db.UserInfo.objects(username = session["user"])[0].allcharacters:
if x.charid == someint:
x.delete()
相关文档被删除,但数组中的引用仍然存在,指向不再存在的文档。
我试过
allcharacters = mg.ListField(
mg.ReferenceField("Character"), reverse_delete_rule=mg.CASCADE)
但这似乎无济于事。
如何删除Mongoengine中ListField(ReferenceField)的ListField中的条目?
【问题讨论】:
标签: mongodb orm mongoengine