gpt4 book ai didi

python - 使用 MongoDB,如何根据匹配项从列表中删除嵌入的文档

转载 作者:可可西里 更新时间:2023-11-01 09:28:16 25 4
gpt4 key购买 nike

我有一个文档和一个使用 MongoEngine 的嵌入式文档

class Sub(EmbeddedDocument):
Id = StringField()
User = StringField()
Value = StringField()


class Main(Document):
Value = StringField
Values = ListField(EmbeddedDocumentField(Sub))

当我将新的嵌入式文档添加到 Main 的“值”字段中时,我为列表而不是集合生成了一个唯一 ID,Main 的“值”中可以有多个 Sub,每个来自不同的用户,我正在尝试获取 MongoEngine根据 ID 和用户从列表中自动删除“子”值。

我尝试为 Main 运行一个 select,然后为 Sub 本身运行一个 update_one

Main.objects(id=main_id).update_one(pull__values__id=sub_id) 

但这一切似乎返回的是数组内部的索引。我知道我可以简单地拉取 Main,然后通过 Values 找到元素并将其删除,但我试图保持这种原子性,并且在拉取、迭代、更新过程中将某些东西添加到 sub 的可能性较小。

最佳答案

只需使用 EmbeddedDocument 类传递 sub_id

Main.objects(id=main_id).update_one(pull__values__id = Sub(Id=sub_id).Id )

关于python - 使用 MongoDB,如何根据匹配项从列表中删除嵌入的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10269056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com