TinyDB - test() 查询
test() 查询将测试给定参数是否与表中的数据匹配。 如果与数据匹配,则返回匹配的数据,否则返回空白。 首先,我们需要定义一个 test 函数及其参数,然后它将在给定数据库中搜索该项目。
语法
TinyDB test()的语法如下 −
db.search(Query().field.test(function or condition, *arguments))
这里,field代表我们想要访问的数据部分。 Query() 是我们名为 student 的 JSON 表创建的对象。
我们可以创建一个自定义测试函数,如下所示 −
object = lambda t: t == 'value'
此处 lamba 关键字对于创建自定义测试函数非常重要。
让我们通过几个示例来了解它是如何工作的。 我们将使用与前面所有章节中使用的相同的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"
}
]

