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()
它将显示一个空数据库作为输出−
[]

