数据库
getDocument
1. API 描述
功能:单文档查询
2. 请求地址
GET https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents/{docId}?limit={limit}&skip={skip}&fields={fields}&sort={sort}&transactionId={transactionId}
url query 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | String | 否 | 限制查询的文档数量 |
| skip | String | 否 | 偏移的文档数量 |
| fields | String | 否 | 例:{key1: 1, key2: 0},表示取 key1 字段,丢弃 key2 字段 |
| sort | String | 否 | 例:{key1: 1, key2: -1},表示按 key1 升序,key2 降序 排序 |
| transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
3. 请求体
无
4. 响应体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| statusCode | Number | 是 | 状态码,200 |
| body | Object | 是 | 响应体,结构如下 |
body
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| requestId | String | 否 | 请求 ID |
| data | Object | 否 | 返回结果 |
| code | String | 否 | 错误码 |
| message | String | 否 | 错误信息 |
data
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| offset | number | 是 | 偏移量 |
| limit | number | 是 | 限制值 |
| list | Array<String> | 是 | 文档数组,数组单元项为 EJSON 序列化字符串 |
5. 使用示例
// Node 示例
const request = require("request"); // 请求库,需npm 安装依赖
const envId = "testEnv"; // 环境ID
const collectionName = "testCollection"; // 集合名
const docId = "testDocId"; // 文档ID
const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request(
{
url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${docId}`,
method: "GET",
headers: {
"X-CloudBase-Authorization": "your authorization",
"X-CloudBase-SessionToken": "your token",
"X-CloudBase-TimeStamp": "the timestamp",
},
json: true,
},
(err, response, body) => {
console.log(err);
console.log(response.statusCode);
console.log(response.body);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理
consol.log(data);
},
);
updateDocument
1. API 描述
功能:单文档更新
2. 请求地址
PATCH https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents/{docId}?transactionId={transactionId}
url query 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
3. 请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | String | 是 | EJSON 序列化后的替换文档字符串 |
4. 响应体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| statusCode | Number | 是 | 状态码,200 |
| body | Object | 是 | 响应体,结构如下 |
body
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| requestId | String | 否 | 请求 ID |
| data | Object | 否 | 返回结果 |
| code | String | 否 | 错误码 |
| message | String | 否 | 错误信息 |
data
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| updated | Number | 是 | 更新成功的文档数量 |
| matched | Number | 是 | 符合条件的文档数量 |
| upsert_id | String | 是 | upsert 更新时存在,其余情况为 null |
5. 使用示例
// Node 示例
const request = require("request"); // 请求库,需npm 安装依赖
const envId = "testEnv"; // 环境ID
const collectionName = "testCollection"; // 集合名
const docId = "testDocId"; // 文档ID
const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request(
{
url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${docId}`,
method: "PATCH",
headers: {
"X-CloudBase-Authorization": "your authorization",
"X-CloudBase-SessionToken": "your token",
"X-CloudBase-TimeStamp": "the timestamp",
},
body: {
data: EJSON.stringify(
{
name: "new Name", // 更新 name 字段
},
{ relaxed: false },
),
},
json: true,
},
(err, response, body) => {
console.log(err);
console.log(response.statusCode);
console.log(response.body.data.updated);
},
);
setDocument
1. API 描述
功能:单文档替换更新,若指定 docId 的 doc 已存在,则替换更新,否则插入新 doc
2. 请求地址
PUT https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents/{docId}?transactionId={transactionId}
url query 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| transactionId | String | 否 | transactionId 存在则表示事务中文档操 作 |
3. 请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | String | 是 | EJSON 序列化后的替换文档字符串 |
4. 响应体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| statusCode | Number | 是 | 状态码,200 |
| body | Object | 是 | 响应体,结构如下 |
body
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| requestId | String | 否 | 请求 ID |
| data | Object | 否 | 返回结果 |
| code | String | 否 | 错误码 |
| message | String | 否 | 错误信息 |
data
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| updated | Number | 是 | 更新成功的文档数量 |
| matched | Number | 是 | 符合条件的文档数量 |
| upsert_id | String | 是 | 替换更新 插入新 doc 时存在,其余情况为 null |
5. 使用示例
// Node 示例
const request = require("request"); // 请求库,需npm 安装依赖
const envId = "testEnv"; // 环境ID
const collectionName = "testCollection"; // 集合名
const docId = "testDocId"; // 文档ID
const unExistDocId = "testUnExistDocId"; // 不存在的文档ID
const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request(
{
url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${docId}`, // 替换更新
// url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${unExistDocId}`, // 插入当前文档
method: "PUT",
headers: {
"X-CloudBase-Authorization": "your authorization",
"X-CloudBase-SessionToken": "your token",
"X-CloudBase-TimeStamp": "the timestamp",
},
body: {
data: EJSON.stringify(
{
name: "new Name", // 更新 name 字段
},
{ relaxed: false },
),
},
json: true,
},
(err, response, body) => {
console.log(err);
console.log(response.statusCode);
console.log(response.body.data.updated); // 替换更新时存在该值
console.log(response.body.data.upsert_id); // 文档不存在插入文档时,存在该值
},
);
insertDocument
1. API 描述
功能:单文档插入
2. 请求地址
POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents/{docId}?transactionId={transactionId}
url query 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
3. 请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | String | 是 | EJSON 序列化后的插入文档字符串 |
4. 响应体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| statusCode | Number | 是 | 状态码,200 |
| body | Object | 是 | 响应体,结构如下 |
body
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| requestId | String | 否 | 请求 ID |
| data | Object | 否 | 返回结果 |
| code | String | 否 | 错误码 |
| message | String | 否 | 错误信息 |
data
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| insertedIds | Array<String> | 是 | 文档数组,数组单元项为插入成功的 docId |