# 数据库记录管理

调试诊断

接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南

接口英文名:dbrecordManage

该接口可用于对数据库记录进行管理,包含插入记录、删除记录、更新记录、查询记录等功能。

# 1. 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/componenttcb/dbrecord?access_token=ACCESS_TOKEN

# 云调用

  • 本接口不支持云调用

# 第三方调用

# 2. 请求参数

# 查询参数 Query String parameters

参数名类型必填示例说明
access_tokenstringACCESS_TOKEN接口调用凭证,可使用 component_access_token

# 请求体 Request Payload

参数名类型必填说明枚举
actionstring操作类型枚举值
envstring环境ID-
querystring数据库操作语句。-

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明
errcodenumber错误码
errmsgstring错误i信息
id_listarray插入成功的数据集合主键_id。insert时返回
deletednumber删除记录数量。delete时返回
matchednumber更新条件匹配到的结果数。update时返回
modifiednumber修改的记录数,update时返回。注意:使用set操作新插入的数据不计入修改数目
idstring新插入记录的id,update时返回。注意:只有使用set操作新插入数据时这个字段会有值
pagerobject分页信息。query时返回
dataarray记录数组。query时返回

# Res.pager Object Payload

分页信息。query时返回

参数名类型示例说明
offsetnumber1偏移
limitnumber10单次查询限制
totalnumber2符合查询条件的记录总数

# 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 诊断工具 辅助定位和分析问题。

错误码错误描述解决方案
-1000system error系统错误
-1system error系统繁忙,此时请开发者稍候再试
0okok
40014invalid access_token不合法的 access_token ,请开发者认真比对 access_token 的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口
40097invalid args参数错误
40101missing parameter缺少必填参数
41001access_token missing缺少 access_token 参数
42001access_token expiredaccess_token 超时,请检查 access_token 的有效期,请参考基础支持 - 获取 access_token 中,对 access_token 的详细机制说明
43002require POST method需要 POST 请求
44002empty post dataPOST 的数据包为空。post请求body参数不能为空。
47001data format error解析 JSON/XML 内容错误;post 数据中参数缺失;检查修正后重试。
85088no qbase privilege该APP未开通云开发

# 8. 适用范围

本接口支持「第三方平台」账号类型代调用,权限集请参考「调用方式」部分。其他账号类型如无特殊说明,均不可调用。