Tinydb 简明教程

TinyDB - Modifying the Data

我们已经使用 update 查询进行过讨论,借助该查询,我们可以修改值并处理数据库中的数据。但是 update 查询(如 db.update(fields, query) )允许我们通过添加或覆盖它的值来更新文档。

但是有时,我们想删除一个字段或需要增加它的值。在这种情况下,我们可以传递一个函数而不是字段。我们可以在更新查询中使用以下操作 -

The Increment Query

顾名思义,增量查询用于增量数据库中键的值。 syntax 增量查询如下所示 -

from tinydb.operations import increment
db.update(increment('key'))

The Add Query

加法查询用于将值添加到键的值。它也适用于字符串。 syntax 加法查询如下所示 -

from tinydb.operations import add
db.update(add(key, value))

The Set Query

此查询用于将键设置为数据的值。 syntax 设置查询如下所示 -

from tinydb.operations import set
db.update(set(key, value))

The Decrement Query

减量查询用于减量键的值。 syntax 减量查询如下所示 -

from tinydb.operations import decrement
db.update(decrement(key))

The Subtract Query

减法查询用于从键的值中减去值。 syntax 减法查询如下所示 -

from tinydb.operations import subtract
db.update(subtract(key, value))

The Delete Query

删除查询用于从文档中删除键。 syntax 删除查询如下所示 -

from tinydb.operations import delete
db.update(delete(key))

让我们举几个示例来演示如何将这些操作与 update 查询一起使用。我们将使用我们在所有以前的章节中使用的相同 student 数据库。

Example 1

让我们看看如何在我们的 student 表中 increment 学生的成绩 -

from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import increment
db.update(increment('mark'), Query().mark == 275)

它将生成以下 output

[5]

以上输出显示它已经更新了文档 ID 为 5 的记录。

Example 2

让我们看看如何在我们的 student 表中 add 学生的成绩 5 分 -

from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import add
db.update(add('mark', 5), Query().mark == 200)

它将生成以下 output

[4]

以上输出显示它已经更新了文档 ID 为 4 的记录。

Example 3

让我们看看如何在我们的 student 表中将分数 set 为 259 的分数设置为 250 -

from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import add
db.update(add('mark', 259), Query().mark == 250)

它将生成以下 output

[1]

以上输出显示它已经更新了文档 ID 为 1 的记录。

Example 4

让我们看看如何在我们的 student 表中 decrement 学生分数 -

from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import decrement
db.update(decrement('mark'), Query().mark == 205)

它将生成以下 output

[4]

以上输出显示它已经更新了文档 ID 为 4 的记录。

Example 5

让我们看看如何在我们的 student 表中 subtract 学生的成绩 5 分 -

from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import add
db.update(add('mark', 5), Query().mark == 204)

它将生成以下 output

[4]

以上输出显示它已经更新了文档 ID 为 4 的记录。

Example 6

让我们看看如何向我们学生表中的学生成绩中 subtract 增加 5 分−

from tinydb import TinyDB, Query
db = TinyDB('student.json')
from tinydb.operations import delete
db.update(delete('mark'), Query().mark == 209)

它将生成以下 output

[4]

以上输出显示,它更新了文档 ID 为 4 的记录。它将从数据库中删除值为 209 的分数字段。

Example 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)
])

它将生成以下 output

[1,2]

以上输出显示,它更新了两个文档 ID 为 1 和 2 的记录。