- 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 - Upsert 数据
- TinyDB - 检索数据
- TinyDB - 文档 ID
- TinyDB - 表格
- TinyDB - 默认表格
- TinyDB - 查询缓存
- TinyDB - 存储类型
- TinyDB - 中间件
- TinyDB - 扩展 TinyDB
- TinyDB - 扩展
- TinyDB 有用资源
- TinyDB - 快速指南
- TinyDB - 有用资源
- TinyDB - 讨论
TinyDB - exists() 查询
TinyDB 提供了一个高级查询,称为 **exists()**,用于检查 JSON 文件中数据是否存在。**exists()** 查询实际上测试的是 JSON 文件中子字段数据的可用性。exists() 查询基于布尔条件工作。如果子字段存在(即布尔值 TRUE),它将相应地从 JSON 文件中获取数据,否则将返回空值。
语法
TinyDB exists() 的语法如下:
db.search(Query().field.exists())
这里,**field** 表示我们要访问的数据部分。**Query()** 是从 JSON 表格 **student** 创建的对象。
我们将使用之前所有章节中使用过的相同 **student** 数据库。
示例 1
让我们对名为 '**subject**' 的字段使用 TinyDB **exists()** 查询:
db.search(student.subject.exists())
此查询将获取所有行,因为所有行都具有“subject”字段。
[ { "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" } ]
示例 2
现在让我们对 '**address**' 字段使用 **exists()** 查询:
db.search(student.address.exists())
它将获取以下行:
[ { "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" } ]
示例 3
现在,让我们尝试对不存在的字段使用 **exists()** 查询:
db.search(student.city.exists())
由于给定表中没有任何行具有名为“city”的字段,因此上面的 exists() 查询将返回空值。
[]
广告