假设我们有以下内容。
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()
所以,我们已经保存了一个没有任何评论的帖子。每个帖子都是独一无二的。
然后,我有一个 Comments 对象列表。我想做一个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)
因此,这可行,但它会在不检查的情况下附加文档。因此,如果我多次运行它,我会得到重复。
任何想法 ?再次感谢。