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

它將顯示一個空資料庫作為輸出

[]
廣告