Tinydb 简明教程

TinyDB - The all() Query

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

Syntax

TinyDB all() 的语法如下 −

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

Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student.

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

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

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

让我们看看如何从我们的 student 表中查找 subject 同时为 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'
}]

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