Tôi muốn nối thêm một ListField EmbeddedDocument mới vào một tài liệu ListField EmbeddedDocument hiện có. Nói cách khác, thêm một tài liệu mới vào danh sách thuộc về một tài liệu trong danh sách.Mongoengine: Làm thế nào để nối thêm một tài liệu mới vào một tài liệu ListField nhúng?
My Model: A bài viết có thể chứa một số nhận xét, mỗi bình luận có thể có nhiều Likes:
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)
Mã của tôi: (nó không làm việc 'thêm' lệnh doesnt tồn tại, chỉ có 'đặt' tồn tại)
def appendNewLike():
user = {..}
target = ObjectId(commentId)
newLike = Like(user=user)
Product.objects(comments__comment_id=target).update(append_comments__S__likes=newLike)
giải pháp lý tưởng sẽ là một cái gì đó như:
def appendNewLike():
user = {..}
target = ObjectId(commentId)
newLike = Like(user=user)
Product.objects(comments__comment_id=target).comments.likes.append(newLike)
Comments? Gợi ý?
Cảm ơn $ đẩy hoạt động! – rat
Xin chào, push không hoạt động cho đến khi tôi gọi reload() với cá thể lớp. như product = Product() Product.objects (comments__comment_id = target) .update ( push__comments__S__likes = newLike) product.reload() – Shashank