数据库
#
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"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst { 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"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst { 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"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst unExistDocId = "testUnExistDocId"; // 不存在的文档IDconst { 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 |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${docId}`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { data: EJSON.stringify( { name: "luke", sex: "male" }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.insertedIds); });
#
deleteDocument#
1. API 描述功能:单文档删除
#
2. 请求地址DELETE https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents/{docId}?transactionId={transactionId}
#
url query 参数字段 | 类型 | 必填 | 说明 |
---|---|---|---|
transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
#
3. 请求体无
#
4. 响应体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
statusCode | Number | 是 | 状态码,200 |
body | Object | 是 | 响应体,结构如下 |
#
body字段 | 类型 | 必填 | 说明 |
---|---|---|---|
requestId | String | 否 | 请求 ID |
data | Object | 否 | 返回结果 |
code | String | 否 | 错误码 |
message | String | 否 | 错误信息 |
#
data字段 | 类型 | 必填 | 说明 |
---|---|---|---|
deleted | Number | 是 | 删除成功的 doc 数 |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${docId}`, method: "DELETE", 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.data.deleted); });
#
insertDocuments#
1. API 描述功能:批量插入文档
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents?transactionId={transactionId}
#
url query 参数字段 | 类型 | 必填 | 说明 |
---|---|---|---|
transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
#
3. 请求体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
data | Array<String> | 是 | 字符串数组,数组单元项为 EJSON 序列化后的插入文档字符串 |
#
4. 响应体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
statusCode | Number | 是 | 状态码,200 |
body | Object | 是 | 响应体,结构如下 |
#
body字段 | 类型 | 必填 | 说明 |
---|---|---|---|
requestId | String | 否 | 请求 ID |
data | Object | 否 | 返回结果 |
code | String | 否 | 错误码 |
message | String | 否 | 错误信息 |
#
data字段 | 类型 | 必填 | 说明 |
---|---|---|---|
insertedIds | Array<String> | 是 | 文档数组,数组单元项为插入成功的 docId |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
const insertDatas = [ { name: "luke" }, { name: "jimmy" }];
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { data: insertDatas.map((item) => EJSON.stringify(item, { relaxed: false })) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.insertedIds); });
#
find#
1. API 描述功能:批量查询文档
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents:find?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. 请求体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
query | String | 是 | EJSON 序列化后的查询字符串 |
#
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"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { sex: "male" }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
#
count#
1. API 描述功能:统计查询文档总数
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents:count?transactionId={transactionId}
#
url query 参数字段 | 类型 | 必填 | 说明 |
---|---|---|---|
transactionId | String | 是 | transactionId 存在则表示事务中文档操作 |
#
3. 请求体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
query | String | 是 | EJSON 序列化后的查询字符串 |
#
4. 响应体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
statusCode | Number | 是 | 状态码,200 |
body | Object | 是 | 响应体,结构如下 |
#
body字段 | 类型 | 必填 | 说明 |
---|---|---|---|
requestId | String | 否 | 请求 ID |
data | Object | 否 | 返回结果 |
code | String | 否 | 错误码 |
message | String | 否 | 错误信息 |
#
data字段 | 类型 | 必填 | 说明 |
---|---|---|---|
total | number | 是 | 总数 |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:count`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { sex: "male" }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.total); });
#
updateOne#
1. API 描述功能:批量查询并更新单文档
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents:updateOne?transactionId={transactionId}
#
url query 参数字段 | 类型 | 必填 | 说明 |
---|---|---|---|
transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
#
3. 请求体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
query | String | 是 | EJSON 序列化后的查询字符串 |
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"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:updateOne`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { sex: "male" }, { relaxed: false } ), data: EJSON.stringify( { name: "newName" }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.updated); });
#
updateMany#
1. API 描述功能:批量查询并批量更新
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents:updateMany?transactionId={transactionId}
#
url query 参数字段 | 类型 | 必填 | 说明 |
---|---|---|---|
transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
#
3. 请求体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
query | String | 是 | EJSON 序列化后的查询字符串 |
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"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:updateMany`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { sex: "male" }, { relaxed: false } ), data: EJSON.stringify( { name: "newName" }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.updated); });
#
deleteOne#
1. API 描述功能:批量查询并删除单文档
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents:deleteOne?transactionId={transactionId}
#
url query 参数字段 | 类型 | 必填 | 说明 |
---|---|---|---|
transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
#
3. 请求体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
query | String | 是 | EJSON 序列化后的查询字符串 |
#
4. 响应体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
statusCode | Number | 是 | 状态码,200 |
body | Object | 是 | 响应体,结构如下 |
#
body字段 | 类型 | 必填 | 说明 |
---|---|---|---|
requestId | String | 否 | 请求 ID |
data | Object | 否 | 返回结果 |
code | String | 否 | 错误码 |
message | String | 否 | 错误信息 |
#
data字段 | 类型 | 必填 | 说明 |
---|---|---|---|
deleted | Number | 是 | 删除成功的 doc 数 |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:deleteOne`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { sex: "male" }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.deleted); });
#
deleteMany#
1. API 描述功能:批量查询并批量删除
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/documents:deleteMany?transactionId={transactionId}
#
url query 参数字段 | 类型 | 必填 | 说明 |
---|---|---|---|
transactionId | String | 否 | transactionId 存在则表示事务中文档操作 |
#
3. 请求体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
query | String | 是 | EJSON 序列化后的查询字符串 |
#
4. 响应体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
statusCode | Number | 是 | 状态码,200 |
body | Object | 是 | 响应体,结构如下 |
#
body字段 | 类型 | 必填 | 说明 |
---|---|---|---|
requestId | String | 否 | 请求 ID |
data | Object | 否 | 返回结果 |
code | String | 否 | 错误码 |
message | String | 否 | 错误信息 |
#
data字段 | 类型 | 必填 | 说明 |
---|---|---|---|
deleted | Number | 是 | 删除成功的 doc 数 |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:deleteMany`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { sex: "male" }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.deleted); });
#
Query Command$eq
#
表示字段等于某个值。
语法:{ <field>: { $eq: <value> } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { name: { $eq: "luke" // 查询 name 字段等于 luke 的 doc } }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$ne
#
表示字段不等于某个值。
语法:{ <field>: { $ne: <value> } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { name: { $ne: "luke" // 查询 name 字段不等于 luke 的 doc } }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$gt
#
表示字段大于某个值。
语法:{field: {$gt: value} }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { age: { $gt: 18 // 查询 age 字段大于 18 的 doc } }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$gte
#
表示字段大于或等于某个值。
语法:{field: {$gte: value} }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { age: { $gte: 18 // 查询 age 字段大于等于 18 的 doc } }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$lt
#
表示字段小于某个值。
语法:{field: {$lt: value} }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { age: { $lt: 18 // 查询 age 字段小于 18 的 doc } }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$lte
#
表示字段小于或等于某个值。
语法:{field: {$lte: value} }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { age: { $lte: 18 // 查询 age 字段小于等于 18 的 doc } }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$in
#
字段值在给定的数组中。
语法:{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { category: { $in: ["science", "computer"] // 查询 category 字段属于 science, computer 之一 的 doc } }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$nin
#
字段值不在给定的数组中。
语法:{ field: { $nin: [<value1>, <value2>, ... <valueN> ] } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { category: { $nin: ["science", "computer"] // 查询 category 字段不属于 science, computer 之一 的 doc } }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$and
#
表示需同时满足指定的两个或以上的条件。
语法:{ $and: [ { <expression1> }, { <expression2> } , ... , { <expressionN> } ] }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { $and: [ { price: { $lt: 200 } }, { price: { $gt: 100 } } ] // 查询 价格 price 字段大于 100 且 小于 200 的 doc }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$or
#
表示需满足所有指定条件中的至少一个。
语法:{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { $or: [ { price: { $lt: 100 } }, { price: { $gt: 200 } } ] // 查询 价格 price 字段小于 100 或 大于 200 的 doc }, { relaxed: false } ) }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode);
const data = response.body.data.list.map((item) => EJSON.parse(item)); // EJSON 反序列化处理 console.log(data); });
$nor
#
表示逻辑 "都不" 的关系,表示需不满足指定的所有条件。
语法:{ $nor: [ { <expression1> }, { <expression2> }, ... { <expressionN> } ] }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson") // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:find`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp",
, }, body: { query: EJSON.stringify({ $nor: [{ price: { $lt: 100 } }, { price: { $gt: 200 } }] // 查询 价格 price 字段既不小于 100 且 不大于 200 的 doc }, {relaxed: false}) } json: true }, (err, response, body) => { console.log(err) console.log(response.statusCode)
const data = response.body.data.list.map(item => EJSON.parse(item)) // EJSON 反序列化处理 console.log(data) });
#
Update Command$set
#
用于设定字段等于指定值。
语法:{ $set: { <field1>: <value1>, ... } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson") // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:updateOne`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp",
, }, body: { query: EJSON.stringify({ title: 'picture' }, {relaxed: false}), data: EJSON.stringify({ $set: { style: { color: "red", size: "large" } } }, {relaxed: false}) // 查询 title 字段为 picture 的 doc,并更新第一个文档的 style 为 {color:"red", size: "large"} } json: true }, (err, response, body) => { console.log(err) console.log(response.statusCode) console.log(response.body.data.updated) });
$inc
#
用于指示字段自增某个值,这是个原子操作。
语法:{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:updateOne`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { category: "computer" }, { relaxed: false } ), data: EJSON.stringify( { $inc: { price: 1000 } }, { relaxed: false } ) // 查询 category 字段为 computer 的 doc,并更新第一个文档的 price 自增 1000 }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.updated); });
$mul
#
用于指示字段自乘某个值。
语法:{ $mul: { <field1>: <number1>, ... } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson") // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:updateOne`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp",
, }, body: { query: EJSON.stringify({ category: 'computer' }, {relaxed: false}), data: EJSON.stringify({ $mul: { price: 1.5 } }, {relaxed: false}) // 查询 category 字段为 computer 的 doc,并更新第一个文档的 price 自乘 1.5倍 } json: true }, (err, response, body) => { console.log(err) console.log(response.statusCode) console.log(response.body.data.updated) });
$unset
#
用于表示删除某个字段。
语法:{ $unset: { <field1>: "", ... } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:updateOne`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { category: "computer" }, { relaxed: false } ), data: EJSON.stringify( { $unset: { rating: "" } }, { relaxed: false } ) // 查询 category 字段为 computer 的 doc,并删除第一个文档的评分 rating 字段 }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.updated); });
$push
#
向数组尾部追加元素,支持传入单个元素或数组。
语法:{ $push: { <field1>: <value1>, ... } }
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:updateOne`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { category: "computer" }, { relaxed: false } ), data: EJSON.stringify( { $push: { tags: { $each: ["tag1", "tag2", "tag3"] } } }, { relaxed: false } ) // 查询 category 字段为 computer 的 doc,并向第一个文档的 tags 字段 追加 tag1, tag2 ,tag3 3个元素 }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.updated); });
$pop
#
删除数组尾部元素。
语法:{ $pop: { <field>: <-1 | 1>, ... } }
1 表示从数组尾部剔除 元素,-1 表示从数组头部剔除元素
// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents:updateOne`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify( { category: "computer" }, { relaxed: false } ), data: EJSON.stringify( { $pop: { tags: 1 } }, { relaxed: false } ) // 查询 category 字段为 computer 的 doc,并剔除第一个文档的 tags 字段对应数组的第一个元素 }, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.data.updated); });
#
Transaction#
startTransaction#
1. API 描述功能:开始事务
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/transaction
#
3. 请求体无
#
4. 响应体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
statusCode | Number | 是 | 状态码,200 |
body | Object | 是 | 响应体,结构如下 |
#
body字段 | 类型 | 必填 | 说明 |
---|---|---|---|
requestId | String | 否 | 请求 ID |
transactionId | String | 否 | 事务 ID |
code | String | 否 | 错误码 |
message | String | 否 | 错误信息 |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst { EJSON } = require("bson"); // bson库,需npm 安装依赖
request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/transaction`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: {}, json: true }, (err, response, body) => { console.log(err); console.log(response.statusCode); console.log(response.body.transactionId); });
#
commitTransaction#
1. API 描述功能:提交事务
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/transaction/${transactionId}:commit
#
3. 请求体无
#
4. 响应体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
statusCode | Number | 是 | 状态码,200 |
body | Object | 是 | 响应体,结构如下 |
#
body字段 | 类型 | 必填 | 说明 |
---|---|---|---|
requestId | String | 否 | 请求 ID |
code | String | 否 | 错误码 |
message | String | 否 | 错误信息 |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst { EJSON } = require("bson"); // bson库,需npm 安装依赖
async function test() { // 1. 开始事务 const startTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/transaction`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: {}, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); // console.log(err) // console.log(response.statusCode) // console.log(response.body.transactionId) } ); });
// 2. 提交事务
const commitTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/transaction/${startTransactionRes.transactionId}:commit`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: {}, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); // console.log(err) // console.log(response.statusCode) // console.log(response.body.transactionId) } ); });
console.log(commitTransactionRes);}
test();
#
rollbackTransaction#
1. API 描述功能:回滚事务
#
2. 请求地址POST https://tcb-api.tencentcloudapi.com/api/v2/envs/{envId}/databases/{collectionName}/transaction/${transactionId}:rollback
#
3. 请求体无
#
4. 响应体字段 | 类型 | 必填 | 说明 |
---|---|---|---|
statusCode | Number | 是 | 状态码,200 |
body | Object | 是 | 响应体,结构如下 |
#
body字段 | 类型 | 必填 | 说明 |
---|---|---|---|
requestId | String | 否 | 请求 ID |
code | String | 否 | 错误码 |
message | String | 否 | 错误信息 |
#
5. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst { EJSON } = require("bson"); // bson库,需npm 安装依赖
async function test() { // 1. 开始事务 const startTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/transaction`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: {}, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); // console.log(err) // console.log(response.statusCode) // console.log(response.body.transactionId) } ); });
// 2. 回滚事务
const rollbackTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/transaction/${startTransactionRes.transactionId}:rollback`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: {}, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); // console.log(err) // console.log(response.statusCode) // console.log(response.body.transactionId) } ); });
console.log(rollbackTransactionRes);}
test();
#
CRUD in transaction#
1. 使用示例// Node 示例const request = require("request"); // 请求库,需npm 安装依赖const envId = "testEnv"; // 环境IDconst collectionName = "testCollection"; // 集合名const docId = "testDocId"; // 文档IDconst { EJSON } = require("bson"); // bson库,需npm 安装依赖
async function test() { // 1. 开始事务 const startTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/transaction`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: {}, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); // console.log(err) // console.log(response.statusCode) // console.log(response.body.transactionId) } ); });
// 2. 事务插入文档 const insertDocId = "lukeTest"; const insertTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${insertDocId}?transactionId=${startTransactionRes.transactionId}`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { data: EJSON.stringify({ name: "luke" }) }, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); } ); });
console.log(insertTransactionRes);
// 3. 事务修改文档 const updateTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${insertDocId}?transactionId=${startTransactionRes.transactionId}`, method: "PATCH", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: { query: EJSON.stringify({ name: "luke" }), data: EJSON.stringify({ name: "jimmy" }) }, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); } ); });
console.log(updateTransactionRes);
// 4. 事务查询文档
const queryTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${insertDocId}?transactionId=${startTransactionRes.transactionId}`, method: "GET", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); } ); });
console.log(queryTransactionRes);
// 5. 事务删除文档
const deleteTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/documents/${insertDocId}?transactionId=${startTransactionRes.transactionId}`, method: "DELETE", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); } ); });
console.log(deleteTransactionRes);
// 6. 回滚事务
const commitTransactionRes = await new Promise((resolve, reject) => { request( { url: `https://tcb-api.tencentcloudapi.com/api/v2/envs/${envId}/databases/${collectionName}/transaction/${startTransactionRes.transactionId}:rollback`, method: "POST", headers: { "X-CloudBase-Authorization": "your authorization", "X-CloudBase-SessionToken": "your token", "X-CloudBase-TimeStamp": "the timestamp" }, body: {}, json: true }, (err, response, body) => { if (err) { reject(err); } resolve(response.body); // console.log(err) // console.log(response.statusCode) // console.log(response.body.transactionId) } ); });
console.log(commitTransactionRes);}
test();