数据库
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 |
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: "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"; // 环境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: "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"; // 环境ID
const 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"; // 环境ID
const 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"; // 环境ID
const 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"; // 环境ID
const 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 存在则表示事务中文档操作 |