新しい ListField EmbeddedDocument を既存の ListField EmbeddedDocument ドキュメントに追加したいと考えています。つまり、リスト内のドキュメントに属する新しいドキュメントをリストに追加します。
私のモデル: 投稿には複数のコメントを含めることができ、各コメントには複数のいいね! を含めることができます。
class Post(Document):
txt = StringField()
comments = ListField(EmbeddedDocumentField(Comment))
class Comment(EmbeddedDocument):
comment = StringField()
comment_id = ObjectIdField()
likes = ListField(EmbeddedDocumentField(Like))
class Like(EmbeddedDocument):
user = ReferenceField(User)
date = DateTimeField(default=datetime.utcnow,required=True)
私のコード: ('append' コマンドは存在しません。'set' のみが存在します)
def appendNewLike():
user = {..}
target = ObjectId(commentId)
newLike = Like(user=user)
Product.objects(comments__comment_id=target).update(append_comments__S__likes=newLike)
理想的な解決策は次のようなものです。
def appendNewLike():
user = {..}
target = ObjectId(commentId)
newLike = Like(user=user)
Product.objects(comments__comment_id=target).comments.likes.append(newLike)
コメント? 提案?