- TinyDB教程
- TinyDB - 主页
- TinyDB - 简介
- TinyDB - 环境设置
- TinyDB - 插入数据
- TinyDB - 检索数据
- TinyDB - 更新数据
- TinyDB - 删除数据
- TinyDB - 查询
- TinyDB - 搜索
- TinyDB - where 子句
- TinyDB - Exists() 查询
- TinyDB - Matches() 查询
- TinyDB - Test() 查询
- TinyDB - Any() 查询
- TinyDB - All() 查询
- TinyDB - one_of() 查询
- TinyDB - 逻辑否定
- TinyDB - 逻辑与
- TinyDB - 逻辑或
- TinyDB - 处理数据查询
- TinyDB - 修改数据
- TinyDB - 更新数据
- TinyDB - 检索数据
- TinyDB - 文档ID
- TinyDB - 表
- TinyDB - 默认表
- TinyDB - 缓存查询
- TinyDB - 存储类型
- TinyDB - 中间件
- TinyDB - 扩展TinyDB
- TinyDB - 扩展
- TinyDB 有用资源
- TinyDB - 快速指南
- TinyDB - 有用的资源
- TinyDB - 讨论
TinyDB - any() 查询
为了搜索包含列表的字段,TinyDB 提供了一个名为any()的方法。此方法至少匹配数据库中的一个给定值。它根据提供的查询找到整个列表或最小一个值。
句法
TinyDB any ()的语法如下 -
db.search(Query().field.any(query|list)
这里,字段代表我们想要访问的数据部分。Query()是我们名为Student 的JSON 表创建的对象。
如果我们提供查询作为any()方法的参数,它将匹配列表字段中至少有一个文档与给定查询匹配的所有文档。
另一方面,如果我们提供list作为any()方法的参数,它将匹配给定列表中至少存在列表字段中的一个文档的所有文档。
让我们通过几个示例来了解它是如何工作的。我们将使用前面所有章节中使用的相同学生数据库。
实施例1
让我们看看如何从学生表中找到主题为 TinyDB、MySQL、SQL 或任意两个或三个的组合的字段 -
from tinydb import TinyDB, Query db = TinyDB('student.json') db.search(Query().subject.any(['TinyDB', 'MySQL', 'oracle']))
上面的查询将获取“subject”字段包含以下任何值的所有行:“TinyDB”、“MySQL”或“oracle” -
[ { "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" } ]
实施例2
让我们看看any()方法在与给定列表中的任何内容都不匹配时如何反应 -
from tinydb import TinyDB, Query db = TinyDB('student.json') db.search(Query().subject.any(['Oracle']))
此查询将返回空白值,因为没有“主题”为“Oracle”的行。
[]
实施例3
请注意它区分大小写。“主题”字段没有“ Oracle ”,但有“ oracle ”。尝试以下查询 -
from tinydb import TinyDB, Query db = TinyDB('student.json') db.search(Query().subject.any(['oracle']))
它将获取以下行 -
[{ 'roll_number': 3, 'st_name': 'kevin', 'mark': [180, 200], 'subject': ['oracle', 'sql'], 'address': 'keral' }]
由于它区分大小写,因此在上一个示例中返回空白值,因为没有“主题”为“Oracle”的行。