- TinyDB 教程
- TinyDB - 首页
- TinyDB - 简介
- TinyDB - 环境设置
- TinyDB - 插入数据
- TinyDB - 检索数据
- TinyDB - 更新数据
- TinyDB - 删除数据
- TinyDB - 查询
- TinyDB - 搜索
- TinyDB - where 子句
- TinyDB - Exists() 查询
- TinyDB - Matches() 查询
- TinyDB - Test() 查询
- TinyDB - Any() 查询
- TinyDB - All() 查询
- TinyDB - one_of() 查询
- TinyDB - 逻辑非
- TinyDB - 逻辑与
- TinyDB - 逻辑或
- TinyDB - 处理数据查询
- TinyDB - 修改数据
- TinyDB - Upsert 数据
- TinyDB - 检索数据
- TinyDB - 文档 ID
- TinyDB - 表格
- TinyDB - 默认表格
- TinyDB - 查询缓存
- TinyDB - 存储类型
- TinyDB - 中间件
- TinyDB - 扩展 TinyDB
- TinyDB - 扩展
- TinyDB 有用资源
- TinyDB - 快速指南
- TinyDB - 有用资源
- TinyDB - 讨论
TinyDB - 修改数据
我们已经讨论了update查询,通过它我们可以修改值以及处理数据库中的数据。但是update查询,例如db.update(fields, query),允许我们通过添加或覆盖其值来更新文档。
但有时,我们想删除一个字段或需要增加其值。在这种情况下,我们可以传递一个函数而不是字段。我们可以使用以下操作与更新查询一起使用:
增量查询
顾名思义,增量查询用于增加数据库中键的值。增量查询的语法如下:
from tinydb.operations import increment
db.update(increment('key'))
添加查询
添加查询用于向键的值添加值。它也适用于字符串。添加查询的语法如下:
from tinydb.operations import add db.update(add(key, value))
设置查询
此查询用于将键设置为数据的值。设置查询的语法如下:
from tinydb.operations import set db.update(set(key, value))
减量查询
减量查询用于减少键的值。减量查询的语法如下:
from tinydb.operations import decrement db.update(decrement(key))
减去查询
减去查询用于从键的值中减去值。减去查询的语法如下:
from tinydb.operations import subtract db.update(subtract(key, value))
删除查询
删除查询用于从文档中删除键。删除查询的语法如下:
from tinydb.operations import delete db.update(delete(key))
让我们举几个例子来演示如何将这些操作与update查询一起使用。我们将使用我们在所有先前章节中使用的相同的student数据库。
示例 1
让我们看看如何在我们的student表中增加学生的成绩:
from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import increment
db.update(increment('mark'), Query().mark == 275)
它将产生以下输出:
[5]
以上输出显示它已更新文档 ID 为 5 的记录。
示例 2
让我们看看如何在我们的student表中向学生的成绩添加 5 分:
from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import add
db.update(add('mark', 5), Query().mark == 200)
它将产生以下输出:
[4]
以上输出显示它已更新文档 ID 为 4 的记录。
示例 3
让我们看看如何在我们的student表中将学生的成绩从 250 设置为 259:
from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import add
db.update(add('mark', 259), Query().mark == 250)
它将产生以下输出:
[1]
以上输出显示它已更新文档 ID 为 1 的记录。
示例 4
让我们看看如何在我们的student表中减少学生的成绩:
from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import decrement
db.update(decrement('mark'), Query().mark == 205)
它将产生以下输出:
[4]
以上输出显示它已更新文档 ID 为 4 的记录。
示例 5
让我们看看如何在我们的student表中从学生的成绩减去 5 分:
from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import add
db.update(add('mark', 5), Query().mark == 204)
它将产生以下输出:
[4]
以上输出显示它已更新文档 ID 为 4 的记录。
示例 6
让我们看看如何在我们的 student 表中从学生的成绩减去 5 分:
from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import delete
db.update(delete('mark'), Query().mark == 209)
它将产生以下输出:
[4]
以上输出显示它已更新文档 ID 为 4 的记录。它将删除数据库中值为 209 的 mark 字段。
示例 7
让我们看看如何使用单个查询更新表中的多个值:
from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb import where
db.update_multiple([
({'st_name':'Eliana'}, where ('roll_number')==1),
({'mark':20}, where ('roll_number') ==2)
])
它将产生以下输出:
[1,2]
以上输出显示它已更新文档 ID 为 1 和 2 的两条记录。