- 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 - Atomics更新
Atomics性是 ACID 事务属性之一。数据库事务必须是不可分割和不可简化的,以便它要么完全发生,要么根本不发生。这个属性称为Atomics性。MongoDB 仅支持单个文档的Atomics性,而不支持多文档事务。
MongoEngine 提供以下方法用于查询集的Atomics更新。
update_one() - 覆盖或添加与查询匹配的第一个文档。
update() - 对查询匹配的字段执行Atomics更新。
modify() - 更新文档并返回它。
这些方法可以使用以下修饰符。(这些修饰符位于字段之前,而不是之后)。
放 | 设置一个特定值 |
未设置 | 删除特定值 |
公司 | 将值增加给定量 |
十二月 | 将值减少给定量 |
推 | 将值附加到列表中 |
推送全部 | 将多个值附加到列表中 |
流行音乐 | 根据值删除列表的第一个或最后一个元素 |
拉 | 从列表中删除一个值 |
全部拉动 | 从列表中删除多个值 |
添加到集合 | 仅当列表中尚不存在时才将值添加到列表中 |
下面是一个Atomics更新的例子,我们首先创建一个名为tests的Document类,并在其中添加一个文档。
from mongoengine import * con=connect('newdb') class tests (Document): name=StringField() attempts=IntField() scores=ListField(IntField()) t1=tests() t1.name='XYZ' t1.attempts=0 t1.scores=[] t1.save()
让我们使用update_one()方法将名称字段从 XYZ 更新到 MongoDB。
tests.objects(name='XYZ').update_one(set__name='MongoDB')
Push 修饰符用于在 ListField(分数)中添加数据。
tests.objects(name='MongoDB').update_one(push__scores=50)
要将 attempts 字段加一,我们可以使用 inc 修饰符。
tests.objects(name='MongoDB').update_one(inc__attempts=1)
更新后的文档如下所示 -
{ "_id":{"$oid":"5ebcf8d353a48858e01ced04"}, "name":"MongoDB", "attempts":{"$numberInt":"1"}, "scores":[{"$numberInt":"50"}] }