查询数据列表

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

geojson

include, within, withinCircle, exists, notExists, isNull, isNotNull

object

=, hasKey, isNull, isNotNull, exists, notExists

pointer

=, inList, notInList, !=, isNull, isNotNull, exists, notExists

info file、geojson、object、date 类型的 array 不支持查询操作。如果进行查询,会返回空数组

操作步骤

1.通过 tableNametableID 实例化一个 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 对象

常见错误:

错误码 err.code
可能的原因

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?