Varolan bir ListField EmbeddedDocument belgesine yeni bir ListField EmbeddedDocument eklemek istiyorum. Başka bir deyişle listedeki bir belgeye ait listeye yeni bir belge eklemek.Mongoengine: Gömülü bir ListField belgesine yeni bir belge nasıl eklenir?
Benim Modeli: (Bu komut dosen't sadece 'set' var 'ekleme' çalışmıyor var):
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)
Benim Kodu: Mesaj birkaç Yorumlar içerebilir, her comment birkaç Beğeniler olabilir
def appendNewLike():
user = {..}
target = ObjectId(commentId)
newLike = Like(user=user)
Product.objects(comments__comment_id=target).comments.likes.append(newLike)
Yorumlar:
def appendNewLike():
user = {..}
target = ObjectId(commentId)
newLike = Like(user=user)
Product.objects(comments__comment_id=target).update(append_comments__S__likes=newLike)
ideal çözüm gibi bir şey olurdu? Öneriler?
Product.objects(comments__comment_id=target).update(
push__comments__S__likes=newLike)
Ancak buradaki asıl sorunları vardır:
Teşekkür ederim $ itme işler! – rat
Merhaba, sınıf örneği ile reload() ifadesini çağırıncaya kadar itme çalışmaz. gibi ürün = Ürün() Product.objects (Yorumlar__comment_id = target) .update ( push__comments__S__likes = newLike) product.reload() – Shashank