English 中文(简体)
TinyDB - The Test() Query
  • 时间:2024-09-17

TinyDB - The test() Query


Previous Page Next Page  

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"
   }
]
Advertisements