首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MongoEngine:如何将文档追加到ListField

MongoEngine:如何将文档追加到ListField
EN

Stack Overflow用户
提问于 2018-08-06 22:06:10
回答 1查看 4.9K关注 0票数 2

我正在使用mongodb和python。

也可以使用MongoEngine与mongodb进行通信。

现在我做了一些简单的具有评论功能的公告板系统。

model.py

代码语言:javascript
复制
import datetime
from mongoengine import *
from config import DB_NAME


connect(DB_NAME)


class User(Document):
    no = SequenceField()
    userid = StringField(unique=True, required=True)
    userpw = StringField(required=True)
    created_at = DateTimeField(default=datetime.datetime.now())


class Comment(EmbeddedDocument):
    content = StringField(required=True)
    writer = ReferenceField(User, required=True)


class Board(Document):
    no = SequenceField()
    subject = StringField(required=True)
    content = StringField(required=True)
    writer = ReferenceField(User, required=True)
    comments = ListField(EmbeddedDocumentField(Comment))
    created_at = DateTimeField(default=datetime.datetime.now())
    updated_at = DateTimeField(default=datetime.datetime.now())

在这段代码中,如何将新列表追加到Boardcomments字段?

在搜索了一个小时后,一些文件说,

Board.objects(no=_no).update_one(push__comments=['123', '456'])将会完美的工作。

但是它抛出了mongoengine.errors.InvalidQueryError: Querying the embedded document 'Comment' failed, due to an invalid query value错误。

也许有一些语法错误,但我是MongoEngine的新手。

我该如何解决这个问题?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-06 22:31:43

已解决

代码语言:javascript
复制
comment = Comments(content='test', writer='hide')
board = Board.objects(no=_no).get()
board.comments.append(comment)
board.save()

我解决了这样的问题。

但是,如果有任何解决方案,请评论它。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51709525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档