TinyDB - all() 查询


TinyDB 提供了一个名为all()的方法,该方法根据提供的查询查找整个值列表。让我们举一个例子来了解它是如何工作的。

句法

TinyDB all()的语法如下 -

db.search(Query().field.all(query|list)

这里,字段代表我们想要访问的数据部分。Query()是我们名为Student 的JSON 表创建的对象。

  • 如果我们提供一个查询作为all()方法的参数,它将匹配列表字段中的所有文档与给定查询匹配的所有文档。

  • 另一方面,如果我们提供一个列表作为all()方法的参数,它将匹配列表字段中的所有文档都出现在给定列表中的所有文档。

让我们通过几个示例来了解它是如何工作的。我们将使用前面所有章节中使用的相同学生数据库。

实施例1

让我们看看如何从学生表中找到主题为 TinyDB 和 MySQL 的字段 -

from tinydb import TinyDB, Query
db = TinyDB('student.json')
db.search(Query().subject.all(['TinyDB', 'MySQL']))

此查询将获取以下行 -

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

实施例2

让我们看看如何使用all()从数据库中获取整个数据 -

from tinydb import TinyDB, Query
db = TinyDB('student.json')
db.all()

它将从链接数据库中获取所有行 -

[
   {
      "roll_number":1,
      "st_name":"elen",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":2,
      "st_name":"Ram",
      "mark":[
         250,
         280
      ],
      "subject":[
         "TinyDB",
         "MySQL"
      ],
      "address":"delhi"
   },
   {
      "roll_number":3,
      "st_name":"kevin",
      "mark":[
         180,
         200
      ],
      "subject":[
         "oracle",
         "sql"
      ],
      "address":"keral"
   },
   {
      "roll_number":4,
      "st_name":"lakan",
      "mark":200,
      "subject":"MySQL",
      "address":"mumbai"
   },
   {
      "roll_number":5,
      "st_name":"karan",
      "mark":275,
      "subject":"TinyDB",
      "address":"benglore"
   }
]