查询数据列表
BaaS.TableObject#find(options)
参数说明
options(类型:Object),属性说明:
withCount
boolean
否
false
是否返回 total_count
数据类型对应查询操作符表
string
=, inList, notInList, !=, isNull, isNotNull, contains, matches, exists, notExists
integer
=, >, >=, <, <=, !=, inList, notInList, isNull, isNotNull, exists, notExists
number
=, >, >=, <, <=, !=, inList, notInList, isNull, isNotNull, exists, notExists
array
=, inList, notInList, isNull, isNotNull, arrayContains, exists, notExists
file、geojson、object、date 类型的 array 不支持查询操作。如果进行查询,会返回空数组
boolean
=, exists, notExists, isNull, isNotNull
date
=, >, >=, <, <=, exists, notExists, isNull, isNotNull
file
isNull, isNotNull, exists, notExists
object
=, hasKey, isNull, isNotNull, exists, notExists
pointer
=, inList, notInList, !=, isNull, isNotNull, exists, notExists
info file、geojson、object、date 类型的 array 不支持查询操作。如果进行查询,会返回空数组
操作步骤
1.通过 tableName 或 tableID 实例化一个 TableObject 对象,操作该对象即相当于操作对应的数据表,这里推荐用 tableName
TableObject myTableObject = new TableObject(tableName)
参数说明
tableName 和 tableId 二选一,不能同时存在
tableId
String
是
数据表的 ID
tableName
String
是
数据表名
2.创建 Where 对象,在该对象上添加查询条件
查看下面的文档,了解目前支持的查询条件
3.设置查询条件并执行查找操作
4.支持查询条件并执行查找操作
myTableObject.find(query: query);
info 注意:知晓云的 api URL 长度限定为 16386,超出则返回 502,请在构造查询条件时注意长度控制,如 inList 操作符后边的数组长度、match 操作符后边的字符串长度等。
返回结果
返回 TableRecordList 类型,详见:数据类型
示例
请求示例
返回结果
返回 TableRecordList 类型,详见:数据类型
err 对象结构请参考错误码和 HError 对象
常见错误:
400
1. 指定/过滤输出字段的字段名有误、2. GEO 查询参数有误、3. 查询语法错误
404
数据表不存在
比较查询
Where where = Where.compare(key, operator, value);
operator 包含 =, !=, <, <=, >, >=
字符串查询
查询返回满足包含相应字符串的记录,如下示例:
也支持正则匹配 ( 正则表达式相关知识 ):
构建一个 regExp 可通过以下方法,i 表示对大小写不敏感:
调用 RegExp 对象的构造函数
正则匹配示例
数组查询
field 的类型不限制,field 的 value 含有 array 中的一个或多个
field 的类型不限制,field 的 value 不含有 array 中的任何一个
field 的类型必须为 数组, field 的 value 包含 array 中的 每一个
如果希望查找数组中只包含指定数组中所有的值的记录,可以使用比较查询
请求示例
null 或非 null 查询
查询字段值为 null 或非 null 记录
空或非空查询
查询字段值为空或非空记录
hasKey 查询 (仅限 object 类型)
参数说明
key
String
是
在数据表中的类型必须是 Object
filedName
String
是
需要检测的属性名, 只能包含字母、数字和下划线,必须以字母开头
示例代码
假设数据表有如下数据行
查询字段 publisherInfo 中存在 location 属性的数据行
查询结果
注意:目前暂不支持查询内嵌属性
假设数据行如下
则下面的查询语句是非法的
pointer 查询
info 目前 pointer 仅支持针对 pointer 本身的查询,不支持嵌套查询(即查询 pointer 指向的数据行的字段)
示例代码
假设现在有两张表: order 表和 customer 表。
order 表部分字段结构如下:
customer
pointer
指向了 customer 表
现在需要查询 order 表中,同时满足以下条件的数据行:
customer 字段指向 customer 表中 id 为
5bad87ab0769797b4fb27a1b的数据行
返回示例
返回 TableRecordList 类型,详见:数据类型
不使用 expand 方法的示例
其他查询 pointer 示例
pointer 类型支持的查询操作符请参考 数据类型对应查询操作符表
组合查询
复杂组合查询
获取符合筛选条件的数据总数
BaaS.TableObject#count()
Last updated
Was this helpful?