# 云函数查询多条数据库数据
# 简要描述
- 云函数查询数据库数据,返回所有匹配的数据列表
- 参数结构与 查询多条数据库数据 完全一致(
where+pc+ 表达式reg) - 结果超过 1000 条需分页,默认第 1 页、每页 1000 条
# 方法名称
potato.selectList(tableName, param)
1
# 参数说明
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| tableName | 是 | String | 表名称(土豆 API 中创建的表名) |
| param | 是 | Object | 查询体,结构见下表;查全部时传 {} |
# param 结构(与数据库接口 body 一致)
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| where | 否 | Array | 条件对象数组;唯一生效的条件入口(代码只解析 param.where) |
| pc | 否 | Object | 分页,默认 { "p": 1, "s": 1000 } |
勿在 param 顶层直接传
reg/column/value,实现不会读取,条件只会来自where数组。
# where 数组每一项
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| reg | 否 | String | 表达式,缺省为 eq |
| column | 是 | String | 字段名称,如 id |
| value | 是 | String/Object | 字段值;in/nin 时为数组或 JSON 数组字符串 |
# reg 表达式取值(与 SqlEnum / Mapper 一致)
| 值 | 含义 |
|---|---|
eq | 等于(默认) |
le | 小于 |
lte | 小于等于 |
gt | 大于 |
gte | 大于等于 |
ne | 不等于 |
in | 包含在数组中 |
nin | 不包含在数组中 |
like_contains | 前后缀匹配(包含) |
like_prefix | 前缀匹配 |
like_suffix | 后缀匹配 |
# pc 分页对象
| 参数名 | 说明 |
|---|---|
| p | 页码,从 1 开始 |
| s | 每页条数,默认最大按实现为 1000 |
# 调用实例
# 查询全部
var res = potato.selectList('users', {});
return res;
1
2
2
# 条件查询(where 数组)
var param = {
where: [
{ reg: 'eq', column: 'status', value: '1' },
{ reg: 'eq', column: 'type', value: 'vip' }
],
pc: { p: 1, s: 100 }
};
var res = potato.selectList('users', param);
return res;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 带比较条件
var param = {
where: [
{ reg: 'eq', column: 'id', value: '1' },
{ reg: 'le', column: 'id', value: '3' }
],
pc: { p: 1, s: 1000 }
};
var res = potato.selectList('test', param);
return res;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
错误写法(勿用):
potato.selectList('users', { status: 1 })
多条查询不能像selectOne那样直接平铺字段,必须使用where数组。
# 返回示例(方法直接返回)
[
{ "id": 1, "name": "1" }
]
1
2
3
2
3
# 客户端调用云函数
请求 POST /api/execFunction,验签规则见 接口规范。
# 请求头
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| Content-Type | 是 | string | JSON 时传 application/json |
| askKey | 是 | string | 验证 app 的令牌 |
| sign | 否 | string | 开启验签时必传 |
| time | 否 | string | 开启验签时必传(毫秒时间戳) |
| apiUserToken | 否 | string | 用户令牌 |
| nonce | 否 | string | 开启 V3 验签必传,6分钟内不可重复 |
# 请求体
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | 是 | String | 云函数名称 |
| params | 否 | Object | 传给云函数的自定义参数(展开到全局) |
# 请求示例
{
"name": "getUserList",
"params": {
"status": "1"
}
}
1
2
3
4
5
6
2
3
4
5
6
对应云函数内可写:
var param = {
where: [
{ reg: 'eq', column: 'status', value: status }
],
pc: { p: 1, s: 100 }
};
return potato.selectList('users', param);
1
2
3
4
5
6
7
2
3
4
5
6
7
# 返回示例
{
"code": "200",
"message": "",
"status": true,
"data": [
{ "name": "1", "id": 1 }
],
"pc": null,
"time": null,
"nonce": null,
"sign": null,
"reqSign": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | string | 200 成功;203 无数据;403 权限异常或登录超时;500 请求异常 |
| status | boolean/int | 业务状态 |
| data | array | 查询结果列表 |
| pc | object | 分页信息(若有) |
| nonce | string | V3 验签时返回 |
| sign | string | 开启验签时返回(响应签名) |
| reqSign | string | 请求签名 |
| time | long/string | 开启验签时返回 |