# 数据库记录管理
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南
接口英文名:dbrecordManage
该接口可用于对数据库记录进行管理,包含插入记录、删除记录、更新记录、查询记录等功能。
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/componenttcb/dbrecord?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用
# 第三方调用
- 本接口仅支持第三方平台使用 component_access_token 自己调用。
# 2. 请求参数
# 查询参数 Query String parameters
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| access_token | string | 是 | ACCESS_TOKEN | 接口调用凭证,可使用 component_access_token |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 | 枚举 |
|---|---|---|---|---|
| action | string | 是 | 操作类型 | 枚举值 |
| env | string | 是 | 环境ID | - |
| query | string | 是 | 数据库操作语句。 | - |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | string | 错误i信息 |
| id_list | array | 插入成功的数据集合主键_id。insert时返回 |
| deleted | number | 删除记录数量。delete时返回 |
| matched | number | 更新条件匹配到的结果数。update时返回 |
| modified | number | 修改的记录数,update时返回。注意:使用set操作新插入的数据不计入修改数目 |
| id | string | 新插入记录的id,update时返回。注意:只有使用set操作新插入数据时这个字段会有值 |
| pager | object | 分页信息。query时返回 |
| data | array | 记录数组。query时返回 |
# Res.pager Object Payload
分页信息。query时返回
| 参数名 | 类型 | 示例 | 说明 |
|---|---|---|---|
| offset | number | 1 | 偏移 |
| limit | number | 10 | 单次查询限制 |
| total | number | 2 | 符合查询条件的记录总数 |
# 4. 枚举信息
# Body.action Enum
操作类型
| 枚举值 | 描述 |
|---|---|
| insert | 数据库插入记录 |
| delete | 数据库删除记录 |
| update | 数据库更新记录 |
| query | 数据库查询记录 |
# 5. 注意事项
本接口无特殊注意事项
# 6. 代码示例
# 5.1 数据库插入记录
请求示例
{
"env":"test2-4a89da",
"query": "db.collection(\"geo\").add({
data: [{
description: \"item1\",
due: new Date(\"2019-09-09\"),
tags: [
\"cloud\",
\"database\"
],
location: new db.Geo.Point(113, 23),
done: false
},
{
description: \"item2\",
due: new Date(\"2019-09-09\"),
tags: [
\"cloud\",
\"database\"
],
location: new db.Geo.Point(113, 23),
done: false
}
]
})"
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
"id_list": [
"be62d9c4-43ec-4dc6-8ca1-30b206eeed24",
"0f4b8add5cdd728a003bf5c83ed99dff"
]
}
# 5.2 删除集合
请求示例
{
"env": "test2-4a89da",
"query": "db.collection(\"geo\").where({done:false}).remove()"
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
"deleted": 2
}
# 5.3 删除记录
请求示例
{
"env": "test2-4a89da",
"query": "db.collection(\"geo\").doc(\"be62d9c4-43ec-4dc6-8ca1-30b206eeed24\").remove()"
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
"deleted": 1
}
# 5.4 更新集合
请求示例
{
"env": "test2-4a89da",
"query": "db.collection(\"geo\").where({age:14}).update({data:{age: _.inc(1)}})"
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
"matched": 1,
"modified": 1,
"id": ""
}
# 5.5 更新一条记录
请求示例
{
"env": "test2-4a89da",
"query": "db.collection(\"geo\").doc(\"56abd6d5-9daf-4fc7-af05-eca13933f1aa\").update({data:{age: 10}})"
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
"matched": 1,
"modified": 1,
"id": ""
}
# 5.6 更新替换一条记录
请求示例
{
"env":"test2-4a89da",
"query": "db.collection(\"geo\").doc(\"be62d9c4-43ec-4dc6-8ca1-30b206eeed24\").set({data: {
description: \"set\",
done: true
}})"
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
"matched": 0,
"modified": 0,
"id": "be62d9c4-43ec-4dc6-8ca1-30b206eeed24"
}
# 5.7 数据库查询记录
请求示例
{
"env": "test2-4a89da",
"query": "db.collection(\"geo\").where({done:true}).limit(10).skip(1).get()"
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
"pager": {
"offset": 1,
"limit": 10,
"total": 2
},
"data": [
"{\"_id\":\"b15498af-1a5a-40b4-a4e7-b3fc4a1df482\",\"done\":true,\"name\":\"test\"}"
]
}
# 7. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| -1000 | system error | 系统错误 |
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 0 | ok | ok |
| 40014 | invalid access_token | 不合法的 access_token ,请开发者认真比对 access_token 的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口 |
| 40097 | invalid args | 参数错误 |
| 40101 | missing parameter | 缺少必填参数 |
| 41001 | access_token missing | 缺少 access_token 参数 |
| 42001 | access_token expired | access_token 超时,请检查 access_token 的有效期,请参考基础支持 - 获取 access_token 中,对 access_token 的详细机制说明 |
| 43002 | require POST method | 需要 POST 请求 |
| 44002 | empty post data | POST 的数据包为空。post请求body参数不能为空。 |
| 47001 | data format error | 解析 JSON/XML 内容错误;post 数据中参数缺失;检查修正后重试。 |
| 85088 | no qbase privilege | 该APP未开通云开发 |
# 8. 适用范围
本接口支持「第三方平台」账号类型代调用,权限集请参考「调用方式」部分。其他账号类型如无特殊说明,均不可调用。