TinyDB - 删除数据

如果您需要从 TinyDB 数据库中永久删除一组特定数据,可以使用 remove() 方法来实现。 与检索和更新数据一样,您首先需要创建 Query 类的实例来删除数据。 您可以使用以下命令来实现此目的 −

from tinydb import Query
Student = Query()

这里,Student是我们数据库的名称。

remove() 方法

这是remove()方法的语法 −

db.remove( Query() field regex )

remove() 方法接受可选条件以及可选的文档 ID 列表。

student 学生数据库

我们将使用以下student数据库作为本章的示例。

[
   {
      "roll_number":1,
      "st_name":"elen",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":2,
      "st_name":"Ram",
      "mark":[
         250,
         280
      ],
      "subject":[
         "TinyDB",
         "MySQL"
      ],
      "address":"delhi"
   },
   {
      "roll_number":3,
      "st_name":"kevin",
      "mark":[
         180,
         200
      ],
      "subject":[
         "oracle",
         "sql"
      ],
      "address":"keral"
   },
   {
      "roll_number":4,
      "st_name":"lakan",
      "mark":200,
      "subject":"MySQL",
      "address":"mumbai"
   },
   {
      "roll_number":5,
      "st_name":"karan",
      "mark":275,
      "subject":"TinyDB",
      "address":"benglore"
   }
]

示例:删除单行数据

让我们通过一个例子来了解一下remove()方法。

from tinydb import TinyDB, Query
student = Query()
db.remove(student.roll_number == 5)

上面的查询将删除学生学号为5的数据。它将返回被删除对象的ID −

[5]

现在,我们可以使用 all() 方法来查看更新后的数据库。

db.all()

它将显示更新数据库中的数据 −

[
   {
      "roll_number":1,
      "st_name":"Adam",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":2,
      "st_name":"Ram",
      "mark":[
         250,
         280
      ],
      "subject":[
         "TinyDB",
         "MySQL"
      ],
      "address":"delhi"
   },
   {
      "roll_number":3,
      "st_name":"kevin",
      "mark":[
         180,
         200
      ],
      "subject":[
         "oracle",
         "sql"
      ],
      "address":"keral"
   },
   {
      "roll_number":4,
      "st_name":"lakan",
      "mark":200,
      "subject":"MySQL",
      "address":"mumbai"
   }
]

示例:删除多行数据

如果要一次删除多行,可以使用remove()方法,如下 −

from tinydb import TinyDB, Query
student = Query()
db.remove(student.roll_number > 2)

它将返回已删除对象的 ID:

[3,4]

使用 all() 方法查看更新的数据库。

db.all()

它将显示更新数据库中的数据 −

[
   {
      "roll_number":1,
      "st_name":"Adam",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":2,
      "st_name":"Ram",
      "mark":[
         250,
         280
      ],
      "subject":[
         "TinyDB",
         "MySQL"
      ],
      "address":"delhi"
   }
]

示例:删除整个数据

如果要删除数据库中的所有数据,可以使用truncate()方法,如下所示 −

db.truncate()

接下来,使用 all() 方法查看更新后的数据库。

db.all()

它将显示一个空数据库作为输出

[]