以下があるとしましょう。
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()
したがって、コメントなしで投稿を保存しました。各投稿は一意です。
次に、コメント オブジェクトのリストを取得します。それらを1つずつ保存するためにforループを実行するか、コメントオブジェクトのリストを作成して一度更新したいと思います。
また、これらの Comment オブジェクトのいくつかが既に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)
したがって、これは機能しますが、チェックせずにドキュメントを追加します。そのため、何度も実行すると重複します。
何か案が ?再度、感謝します。