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()

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

[]
广告