如何根据其ID mogoengine更新ListField中的嵌入文档?

问题描述 投票:0回答:1

我有以下文件:

class Note(EmbeddedDocument):
    value = mongo_db.StringField(max_length=200, required=True)

class Post(Document,):
    notes = mongo_db.ListField(mongo_db.EmbeddedDocumentField(Note))

如何编写一个语句来更新value对象列表内的Note对象的Post字段。换句话说,如何编写可以执行以下操作的内容:

update(post_id, note_id, new_valye)
python mongodb updates mongoengine
1个回答
0
投票

您有2种方法,假设您要更新列表的第二项(即index = 1):

1)获取您的文档实例并使用.save()

post = Post.objects().first()
post.notes[1].value = 'new_value'
post.save()

2)如果您只需要更新文档的字段,并且知道它在数组中的位置,则可以使用:

Post.objects.update(set__notes__1__value='new_value')
© www.soinside.com 2019 - 2024. All rights reserved.