【发布时间】:2019-10-21 16:02:39
【问题描述】:
我有以下文件:
class Note(EmbeddedDocument):
value = mongo_db.StringField(max_length=200, required=True)
id = mongo_db.UUIDField(required=True, primary_key=True)
class Post(Document,):
notes = mongo_db.ListField(mongo_db.EmbeddedDocumentField(Note))
如何编写语句来更新Post 对象列表中Note 对象的value 字段。换句话说,如何编写执行以下操作的内容:
update(post_id, note_id, new_valye)
以类似的方式,我如何删除嵌入文档Note 的实例:
delete(post_id, note_id)
【问题讨论】:
-
见Updating a embedded documents in mongoengine。我本来打算早先与您分享重复的问题,但不小心(只是简单地)将您的问题重复关闭为一个完全不相关的问题(因为我打开了多个标签,感觉重新打开是公平的,因为我没有立即获得链接)。答案就在那里,而且实际上在mongoengine documentation
-
谢谢@NeilLunn,这很奇怪,虽然我搜索了多次,但我找不到这个问题,无论如何,我认为这会解决我的问题,但我认为你提到的文档部分是不相关。
-
在这种情况下还有@NeilLunn,我应该将问题标记为重复还是删除它?
-
它在我提供链接的“附近”文档中。但是您需要稍微“向下滚动”到显示“更新”的位置。请特别注意,您将看到 MongoDB positional
$operator, 在 MongoEngine 表达式(基于 Django“ORM”语法)中无效。无论如何,这就是“要点”。我实际上不能“两次”“强制关闭”您的问题(如前所述)。也不确定您是否可以“自行关闭”,除非其他人“建议”类似的重复关闭。 -
我一般认为不需要删除。我个人认为用不同的问题标题或稍微不同的方式提出相同问题的标记重复实际上是一件好事,因为不同的人可能会以不同的方式表达相同的问题。所以我个人喜欢各种“重复”的“稍微”不同的询问方式。让其他人更容易得出相同的答案。
标签: python mongodb updates mongoengine