TinyDB - test() 查詢



test() 查詢用於測試給定的引數是否與表中的資料匹配。如果匹配,則返回匹配的資料,否則返回空。首先,我們需要定義一個test函式及其引數,然後它將在給定的資料庫中搜索專案。

語法

TinyDB test() 的語法如下:

db.search(Query().field.test(function or condition, *arguments))

這裡,field 表示我們要訪問的資料部分。Query() 是我們名為student 的 JSON 表格建立的物件。

我們可以建立自定義測試函式,如下所示:

object = lambda t: t == 'value'

這裡lambda關鍵字對於建立自定義測試函式非常重要。

讓我們通過幾個示例來了解它的工作原理。我們將使用前面所有章節中使用的相同student資料庫。

示例 1

我們首先建立一個測試函式,然後在我們的student表中使用它:

from tinydb import TinyDB, Query
db = TinyDB('student.json')
objects = lambda t: t == [250, 280]
db.search(Query().mark.test(objects))

它將獲取“mark”欄位的值為 [250, 280] 的行:

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

示例 2

在這個示例中,我們將在測試函式中使用“subject”欄位:

student = Query()
db = TinyDB('student.json')
objects = lambda t: t == 'TinyDB'
db.search(student.subject.test(objects))

此查詢將獲取“subject”欄位值為“TinyDB”的所有行:

[
   {
      "roll_number":1,
      "st_name":"elen",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":5,
      "st_name":"karan",
      "mark":275,
      "subject":"TinyDB",
      "address":"benglore"
   }
]
廣告