- Mongo引擎教程
- MongoEngine - 主页
- MongoEngine——MongoDB
- MongoEngine - MongoDB 指南针
- MongoEngine - 对象文档映射器
- MongoEngine - 安装
- MongoEngine - 连接到 MongoDB 数据库
- MongoEngine - 文档类
- MongoEngine - 动态模式
- MongoEngine - 字段
- MongoEngine - 添加/删除文档
- MongoEngine - 查询数据库
- MongoEngine - 过滤器
- MongoEngine - 查询运算符
- MongoEngine - 查询集方法
- MongoEngine - 排序
- MongoEngine - 自定义查询集
- MongoEngine - 索引
- MongoEngine - 聚合
- MongoEngine - 高级查询
- MongoEngine - 文档继承
- MongoEngine - 原子更新
- MongoEngine-Javascript
- MongoEngine-GridFS
- MongoEngine - 信号
- MongoEngine - 文本搜索
- MongoEngine - 扩展
- MongoEngine 有用资源
- MongoEngine - 快速指南
- MongoEngine - 有用的资源
- MongoEngine - 讨论
MongoEngine - 添加/删除文档
我们已经使用 Document 类的 save() 方法在集合中添加文档。save() 方法可以借助以下参数进一步自定义 -
强制插入 | 默认值为 False,如果设置为 True 则不允许更新现有文档。 |
证实 | 验证文件;设置为 False 以跳过。 |
干净的 | 调用文档清理方法,验证参数应为 True。 |
写关注 | 将用作生成的 getLastError 命令的选项。例如,save(..., write_concern={w: 2, fsync: True}, ...) 将等待,直到至少两个服务器记录了写入,并将在主服务器上强制进行 fsync。 |
级联 | 设置级联保存的标志。您可以通过在文档 __meta__ 中设置“cascade”来设置默认值。 |
级联_kwargs | 要传递的可选关键字参数抛出到级联保存。相当于级联=True。 |
_refs | 级联保存中使用的已处理引用的列表 |
保存条件 | 仅当数据库中的匹配记录满足条件时才执行保存。如果不满足条件则引发操作错误 |
信号_kwargs | 要传递给信号调用的 kwargs 字典。 |
您可以在调用 save() 之前设置用于验证文档的清理规则。通过提供自定义clean()方法,您可以进行任何预验证/数据清理。
class MyDocument(Document): ... ... def clean(self): if <condition>==True: msg = 'error message.' raise ValidationError(msg)
请注意,仅当验证打开且调用 save() 时才会调用 Cleaning。
Document 类还具有insert()方法来执行批量插入。它有以下参数 -
文档或文档 | 要插入的文档或文档列表 |
批量加载 | 如果为 True,则返回文档实例的列表 |
写关注 | 额外的关键字参数被传递给 insert() ,它将用作结果 getLastError 命令的选项。 |
信号_kwargs | (可选)要传递给信号调用的 kwargs 字典 |
如果文档包含任何 ReferenceField 对象,则默认情况下 save() 方法不会保存对这些对象的任何更改。如果您还希望保存所有引用,请注意每个保存都是一个单独的查询,然后将cascade 作为 True 传递给 save 方法将级联任何保存。
通过调用delete() 方法,从文档集合中删除文档非常简单。请记住,只有先前保存过文档,它才会生效。delete() 方法有以下参数 -
信号_kwargs | (可选)要传递给信号调用的 kwargs 字典。 |
写关注 | 额外的关键字参数被向下传递,这些参数将用作生成的 getLastError 命令的选项。 |
要从数据库中删除整个集合,请使用drop_collection()方法。它从数据库中删除与此文档类型关联的整个集合。如果文档没有集合集(如果它是抽象的,则该方法会引发OperationError)。
文档类中的modify ()方法对数据库中的文档执行Atomics更新并重新加载其更新版本。如果文档已更新,则返回 True;如果数据库中的文档与查询不匹配,则返回 False。请注意,如果该方法返回 True,则对文档所做的所有未保存的更改都将被拒绝。
参数
询问 | 仅当数据库中的文档与查询匹配时才会执行更新 |
更新 | Django 风格的更新关键字参数 |