gpt4 book ai didi

MongoEngine:如何将文档附加到 ListField

转载 作者:行者123 更新时间:2023-12-05 08:32:19 26 4
gpt4 key购买 nike

我正在使用 mongodb 和 python。

同样使用MongoEngine与mongodb进行通信。

现在我做了一个简单的具有评论功能的看板系统。

[模型.py]

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 的新手。

我该如何解决这个问题?

谢谢。

最佳答案

[已解决]

comment = Comments(content='test', writer='hide')
board = Board.objects(no=_no).get()
board.comments.append(comment)
board.save()

我解决了这样的问题。

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

关于MongoEngine:如何将文档附加到 ListField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51709525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com