”;
The test() query will test if the given arguments match with the data in a table. If it matches with the data, it will return the matched data, otherwise it will return blank. First of all, we need to define a test function and its arguments and then it will search the item in a given database.
Syntax
The syntax of TinyDB test() is as follows −
db.search(Query().field.test(function or condition, *arguments))
Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student.
We can create a custom test function as follows −
object = lambda t: t == ''value''
Here the lamba keyword is important to create the custom test function.
Let”s understand how it works with the help of a couple of examples. We will use the same student database that we have used in all the previous chapters.
Example 1
We will first create a test function and then use it in our student table −
from tinydb import TinyDB, Query db = TinyDB(''student.json'') objects = lambda t: t == [250, 280] db.search(Query().mark.test(objects))
It will fetch the rows where the “mark” field has the values [250, 280] −
[{''roll_number'': 2, ''st_name'': ''Ram'', ''mark'': [250, 280], ''subject'': [''TinyDB'', ''MySQL''], ''address'': ''delhi''}]
Example 2
In this example, we will use the “subject” field in the test function −
student = Query() db = TinyDB(''student.json'') objects = lambda t: t == ''TinyDB'' db.search(student.subject.test(objects))
This query will fetch all the rows where the “subject” field has the value “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" } ]
”;