8
我想添加一個新的ListField EmbeddedDocument到現有的ListField EmbeddedDocument文檔。換句話說,將新文檔附加到屬於列表中文檔的列表。Mongoengine:如何將新文檔附加到嵌入式ListField文檔?
我的模型:一個帖子可以包含多個註釋,每個註釋可以有幾個喜歡:
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)
我的代碼:(它不工作「追加」命令這麼想的存在,只有在「設置」存在)
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)
評論?建議?
謝謝推$作品! – rat
你好,在我用類實例調用reload()之前,push不起作用。產品(Product.objects(comments__comment_id = target).update( push__comments__S__likes = newLike)product.reload() – Shashank