mongoengine - MongoEngine:如何将文档附加到 ListField
问题描述
我正在将 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())
在此代码中,如何将新列表附加到Board
'scomments
字段?
搜索了一个小时后,一些文件说,
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()
我解决了这样的问题。
但是,如果有任何解决方案,请发表评论。
推荐阅读
- exif - 从 base64 或缓冲区中删除 exif 数据
- r - 在R中将Tibble转换为矩阵?
- android - HorizontalScrollView 保持在顶部
- html - 在图案内创建一个带有文本的矩形
- reactjs - 如何保存状态少数文件?
- android - Android 项目 firebase crashlytics 不显示有关特定版本的无崩溃用户
- ios - Xcode 12.5 Playgrounds 不显示任何输出或运行代码
- typescript - 如何为可能具有或不具有属性的对象定义类型?
- postgresql - 使用 Spring Batch 从具有数据转换的表中卸载
- mysql - CloudFunction 访问托管在计算机引擎虚拟机上的 MySQL