1
假設我們有以下幾點。如何使用Mongoclient更新單個文檔的嵌入式文檔列表字段?
class Post(Document):
uid = StringField(required=True, unique=True)
text = StringField(required=True
comments = EmbeddedDocumentListField(Comment)
class Comment(EmbeddedDocument):
comment_id = StringField(required=True)
comment = StringField(required=True)
datetime = DatetimeField()
所以,我們已經保存了後沒有任何評論。每篇文章是唯一。
然後,我有一個評論對象列表。我想爲循環做一個來逐一保存它們,或者創建一個評論對象列表並更新一次。
此外,我想檢查這些評論對象中的一些是否已在Post.comment列表字段中已有。
我已經試過
for comment in comments:
o_comment = Comment()
o_comment.id = comment.get('id')
o_comment.comment = comment.get('comment')
o_comment.datetime = datetime.now()
Post.objects(uid = 'some_id').update_one(push__comments = o_comment)
所以,這個工作,但它附加的文件沒有檢查。所以如果我多次運行它,我會得到重複的。
有什麼想法?再次感謝。使用update_one(add_to_set__comments = <list_of_comments>)
非常感謝。有效! 。我認爲我們現在應該使用** update **而不是** update_one **方法,因爲我們正在更新對象列表。我們不會爲你的方式做* * for循環 –
使用update_one sinc你更新1篇文章。 – sergiuz