Tinydb 简明教程

TinyDB - Logical AND

“逻辑与”运算符组合多个条件,如果满足所有条件,则求值为真。TinyDB 逻辑与运算符作用于数据库的两个查询。如果两个查询都为真,TinyDB 将获取所需数据。另一方面,如果其中任何一个查询为假,它将返回一个空白。

Syntax

TinyDB Logical AND 的语法如下 −

db.search((Query().(query1) & (Query().(query2)

这里, field 表示我们要访问的数据部分。 Query() 是我们名为 student 的 JSON 表创建的对象。如果两个条件都满足,它将获取数据,否则它将返回一个空白。

让我们举几个例子,看看 Logial AND 是如何工作的。我们将使用我们在所有先前章节中使用的 student 数据库。

Example 1

让我们看看当我们在 “st_name=lakhan” 和 “subject=MYSQL” 字段上应用逻辑与时,我们的 TinyDB 学生数据库返回了什么 −

from tinydb import TinyDB, Query
db = TinyDB('student.json')
db.search ((Query().st_name == 'lakhan') & (Query().subject == 'MySQL'))

此查询将仅获取学生姓名为“lakhan”且“subject”为“MySQL”的行。

[{
   'roll_number': 4,
   'st_name': 'lakhan',
   'mark': 200,
   'subject': 'MySQL',
   'address': 'mumbai'
}]

Example 2

此示例中,让我们对“subject”和“roll_number”字段应用逻辑 AND −

from tinydb import TinyDB, Query
student = Query()
db = TinyDB('student.json')
db.search((student.subject.search('M')) & (student.roll_number < 5))

此查询将获取其中“roll_number”小于“4”且“subject”以字母“M”开头的所有行。

[{
   'roll_number': 4,
   'st_name': 'lakhan',
   'mark': 200,
   'subject': 'MySQL',
   'address': 'mumbai'
}]