数据库
createCollection
1. 接口描述
接口功能:该接口可创建集合
接口声明:
createCollection(collectionName: string): Promise<Object>
createCollectionIfNotExists(collectionName: string): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
CollectionName | 是 | String | 集合名 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.createCollection('collectionName')
console.log(result)
}
test()
checkCollectionExists
1. 接口描述
接口功能:检查集合是否存在
接口声明:checkCollectionExists(collectionName: string): Promise<Object>
2. 输入参数
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
Msg | 否 | String | 错误信息 |
Exists | 是 | Boolean | 集合是否已经存在 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.checkCollectionExists('collectionAlreadyExists')
if (result.Exists) {
} else {
}
}
test()
deleteCollection
1. 接口描述
接口功能:删除集合
接口声明:deleteCollection(collectionName: string): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
CollectionName | 是 | String | 集合名 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
Exists | 否 | Boolean | 存在不返回该字段,不存在则返回 false |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.deleteCollection('collectionAlreadyExists')
if (result.Exists === false) {
}
}
test()
updateCollection
1. 接口描述
接口功能:更新集合
接口声明:updateCollection(collectionName: string, options: array): Promise<Object>
该接口可更新集合,但目前支持更新索引。
⚠️ 目前该接口只能更新索引,包括创建和删除。
- 索引创建时如果已经存在,则会先删除再创建索引。
- 因为一次接口调用可同时创建多个索引,所以可能部分索引创建失败,部分创建成功,接口报异常。
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
collectionName | 是 | String | 集合名 |
options | 是 | Array<Option> | 配置选项 |
Option
字段 | 必填 | 类型 | 说明 |
---|
CreateIndexes | 否 | Array<CreateIndex> | 需要创建的索引列表 |
DropIndexes | 否 | Array<DropIndex> | 需要删除的索引列表 |
CreateIndex
字段 | 必填 | 类型 | 说明 |
---|
IndexName | 是 | String | 索引名称 |
MgoKeySchema | 是 | Array<MgoKeySchema> | 索引规则 |
MgoKeySchema
字段 | 必填 | 类型 | 说明 |
---|
MgoIsUnique | 是 | boolean | 是否唯一 |
MgoIndexKeys | 是 | Array<MgoIndexKey> | 索引包含的字段列表 |
MgoIndexKey
字段 | 必填 | 类型 | 说明 |
---|
Name | 是 | String | 索引名称 |
Direction | 是 | String | 索引方向,1:ASC,-1:DESC,2d:双向,如果有 2d,2d 必须放最前面,注:地理位置索引应设置该值为 "2dsphere" |
DropIndex
字段 | 必填 | 类型 | 说明 |
---|
IndexName | 是 | String | 索引名称 |
更新索引支持的两种方式,创建与删除,相互独立,不可在 options 同时传入 CreateIndexes,DropIndexes
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
4. 示例代码
创建新索引
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.updateCollection('collectionAlreadyExists', {
CreateIndexes: [
{
IndexName: 'index_a',
MgoKeySchema: {
MgoIndexKeys: [
{ Name: 'a_2d', Direction: '2d' },
{ Name: 'a_1', Direction: '1' },
{ Name: 'a_-1', Direction: '-1' }
],
MgoIsUnique: false
}
},
{
IndexName: 'index_b',
MgoKeySchema: {
MgoIndexKeys: [{ Name: 'b_1', Direction: '2d' }],
MgoIsUnique: true
}
},
{
IndexName: 'index_to_be_delete',
MgoKeySchema: {
MgoIndexKeys: [{ Name: 'xxx', Direction: '2d' }],
MgoIsUnique: true
}
}
]
})
console.log(result)
}
test()
删除索引
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.updateCollection('collectionAlreadyExists', {
DropIndexes: [{ IndexName: 'index_to_be_delete' }]
})
console.log(result)
}
test()
describeCollection
1. 接口描述
接口功能:查询集合详细信息
接口声明:describeCollection(collectionName: string): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
CollectionName | 是 | String | 集合名 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
IndexNum | 是 | Number | 索引个数 |
Indexes | 是 | Array | 索引列表 |
Indexes[N].Name | 是 | String | 索引名称 |
Indexes[N].Size | 是 | String | 索引大小,单位: 字节 |
Indexes[N].Unique | 是 | String | 是否为唯一索引 |
Indexes[N].Keys | 是 | Array | 索引键值 |
Indexes[N].Keys[N].Name | 是 | String | 键名 |
Indexes[N].Keys[N].Direction | 是 | String | 索引方向,1: ASC, -1: DESC, 2d:双向 |
Indexes[N].Accesses | 是 | Array | 索引使用信息 |
Indexes[N].Accesses[N].Ops | 是 | Number | 索引命中次数 |
Indexes[N].Accesses[N].Since | 是 | String | 命中次数从何时开始计数 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.describeCollection('collectionAlreadyExists')
const { Indexes } = result
for (let index in Indexes) {
console.log(index)
}
}
test()
listCollections
1. 接口描述
接口功能:查询集合详细信息
接口声明:listCollections(options: object): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
MgoOffset | 否 | Number | 可选,偏移量 |
MgoLimit | 否 | Number | 可选,数量限制 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
Collections | 是 | Array | 集合列表 |
Collections[N].CollectionName | 是 | String | 集合名称 |
Collections[N].Count | 是 | Number | 集合中文档数量 |
Collections[N].Size | 是 | Number | 集合占用空间大小,字节 |
Collections[N].IndexCount | 是 | Number | 集合中索引个数 |
Collections[N].IndexSize | 是 | Number | 集合中索引占用空间大小,字节 |
Pager | 是 | Object | 本次查询分页信息 |
Pager.Offset | 是 | Number | 偏移量 |
Pager.Limit | 是 | Number | 限制数量 |
Pager.Total | 是 | Number | 集合数量 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.listCollections({
MgoOffset: 100,
MgoLimit: 10
})
const { Collections } = result
for (let collection in Collections) {
console.log(collection)
}
}
checkIndexExists
1. 接口描述
接口功能:检查索引是否存在
接口声明:checkIndexExists(collectionName: string, indexName: string): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
collectionName | 是 | String | 集合名 |
indexName | 是 | String | 索引名 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
Exists | 是 | Boolean | 索引是否存在 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.checkIndexExists(
'collectionAlreadyExists',
'index_to_be_delete'
)
const { Exists } = result
if (Exists === true) {
}
}
test()
import
1. 接口描述
接口功能:导入数据
接口声明:import(collectionName: string, file: object, options: object): Promise<Object>
注意:
- 该接口立即返回,迁移状态(成功|失败)可通过 migrateStatus 查询。
- 导入数据需要先将文件上传到该环境(同一个 EnvId)下的对象存储中,所以会在对象存储中创建对象。
- 因为该函数成功返回只意味着上传成功,导入操作在上传后开始,该接口无法判断导入是否完成,所以该对象用完后需要手动删除。
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
collectionName | 是 | String | 集合名 |
file | 是 | Array | 数据,以下方式必选一种 |
⁃ FilePath | 是 | String | 本地数据文件路径 |
⁃ ObjectKey | 是 | String | 本环境下对象存储 Key |
options | 否 | Array | 可选参数 |
⁃ ObjectKeyPrefix | 否 | String | 对象存储 Key 前缀,默认 tmp/db-imports/ |
⁃ FileType | 否 | String | 文件类型:csv 或 json,如果为传递此参数,默认为文件后缀名,注意使用正确的后缀名。 |
⁃ StopOnError | 否 | Boolean | 遇到错误时是否停止导入。 |
⁃ ConflictMode | 否 | String | 冲突处理方式:insert 或 upsert |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
JobId | 是 | Number | 任务 ID,用于在 migrateStatus 接口查询迁移状态 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let res = await database.import(
'collectionAlreadyExists',
{
ObjectKey: 'data.csv'
},
{
StopOnError: true,
ConflictMode: 'upsert'
}
)
const { JobId } = res
console.log(JobId)
}
test()
export
1. 接口描述
接口功能:导出数据,迁移状态(成功|失败)可通过 migrateStatus 查询。
接口声明:export(collectionName: string, file: object, options: object): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
collectionName | 是 | String | 集合名 |
file | 是 | Array | 数据,以下方式必选一种 |
⁃ ObjectKey | 是 | String | 本环境下对象存储 Key |
options | 否 | Array | 可选参数 |
⁃ FileType | 否 | String | 文件类型:csv 或 json,如果为传递此参数,默认为文件后缀名,注意使用正确的后缀名 |
⁃ Query | 否 | String | JSON 字符串,支持 mongo 指令。例如:'{ a: { gte: 3 } }'。与 mongodb 查询语法兼容 |
⁃ Skip | 否 | Number | 偏移量 |
⁃ Limit | 否 | Number | 限制数目 |
⁃ Sort | 否 | Number | JSON 字符串,如果有索引则不支持排序,数据集的长度必须少于 32 兆 |
⁃ Fields | 否 | String | 字符串,字段以逗号分割。FileType=csv 时必填 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
JobId | 是 | Number | 任务 ID,用于在 migrateStatus 接口查询迁移状态 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.export(
'users',
{
ObjectKey: 'users.json'
},
{
Fields: '_id,name',
Query: '{"name":{"$exists":true}}',
Sort: '{"name": -1}',
Skip: 0,
Limit: 1000
}
)
const { JobId } = res
console.log(JobId)
}
test()
migrateStatus
1. 接口描述
接口功能:该接口可查询迁移(导入|导出)状态。
接口声明:migrateStatus(jobId: number): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
jobId | 是 | Integer | 任务 ID,import 和 export 接口返回的 JobId |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
Status | 是 | String | 任务状态。可能值:waiting:等待中,reading:读,writing:写,migrating:转移中,success:成功,fail:失败 |
RecordSuccess | 是 | Integer | 迁移成功的数据条数 |
RecordFail | 是 | Integer | 迁移失败的数据条数 |
ErrorMsg | 是 | String | 迁移失败的原因 |
FileUrl | 是 | String | 文件下载链接,仅在数据库导出中有效 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.migrateStatus(100093275)
console.log(result.Status)
}
test()
distribution
1. 接口描述
接口功能:查询数据分布
接口声明:distribution(): Promise<Object>
2. 输入参数
无
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
Collections | 是 | Array | 集合列表 |
Collections[N].CollectionName | 是 | String | 集合名称 |
Collections[N].DocCount | 是 | Number | 文档数量 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.distribution()
const { Collections } = result
for (let collection in Collections) {
console.log(collection)
}
}
test()
插入文档
1. 接口描述
接口功能:该接口用于向数据库中插入数据
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
TableName | 是 | String | 表名 |
MgoDocs | 是 | Array<String> | 待插入文档 |
Tag | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
InsertedIds | 是 | Array<String> | 插入成功的数据集合主键_id |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const data = JSON.stringify({
a: 1
})
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
console.log('Databases:', Databases)
const { InsertedIds } = await manager.commonService('flexdb').call({
Action: 'PutItem',
Param: {
TableName: 'coll-1',
MgoDocs: [data],
Tag: Databases[0].InstanceId
}
})
console.log('InsertedIds:', InsertedIds)
查询文档
1. 接口描述
接口功能:该接口用于查询数据库文档
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
TableName | 是 | String | 表名 |
MgoLimit | 是 | Number | 查询返回结果 limit 数 |
MgoProjection | 否 | String | 投影条件,为一个 json 串,如{ item: 1, status: 1 }表示结果中返回 item 和 status 两个列;{ item: 0}表示不返回 item 列 |
Tag | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
MgoQuery | 否 | String | 查询条件,查询条件为一个 json 串,如{"test":1} |
MgoOffset | 否 | Number | 查询结果从 offset 条开始返回 |
MgoSort | 否 | String | 排序条件,排序条件为一个 json 串 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
Pager | 是 | Pager | 分页信息 |
Data | 是 | Array<String> | 满足查询条件的数据集合 |
字段 | 必填 | 类型 | 说明 |
---|
Offset | 是 | Number | 分页偏移量 |
Limit | 是 | Number | 每页返回记录数 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
console.log('Databases:', Databases)
const { Data } = await manager.commonService('flexdb').call({
Action: 'Query',
Param: {
TableName: 'coll-1',
MgoQuery: JSON.stringify({ a: 1 }),
Tag: Databases[0].InstanceId,
MgoLimit: 20
}
})
console.log('Data:', Data)
更新文档
1. 接口描述
接口功能:该接口用于更新数据库文档
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
Tag | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
MgoQuery | 否 | String | 查询条件,查询条件为一个 json 串,如{"test":1} |
MgoUpdate | 是 | String | 更新内容 |
TableName | 是 | String | 表名 |
MgoIsMulti | 否 | Boolean | 是否更新多条 |
MgoUpsert | 否 | Boolean | 是否使用 upsert 模式 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
UpsertedId | 是 | String | 插入的数据_id |
ModifiedNum | 是 | Number | 已经修改的行数 |
MatchedNum | 是 | Number | 更新条件匹配到的结果数 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
console.log('Databases:', Databases)
const { ModifiedNum } = await manager.commonService('flexdb').call({
Action: 'UpdateItem',
Param: {
TableName: 'coll-1',
MgoUpdate: JSON.stringify({ a: 2 }),
MgoQuery: JSON.stringify({ a: 1 }),
Tag: Databases[0].InstanceId
}
})
console.log('ModifiedNum:', ModifiedNum)
删除文档
1. 接口描述
接口功能:该接口用于删除数据库文档
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
Tag | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
MgoQuery | 否 | String | 查询条件,查询条件为一个 json 串,如{"test":1} |
TableName | 是 | String | 表名 |
MgoIsMulti | 否 | Boolean | 是否更新多条 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RequestId | 是 | String | 请求唯一标识 |
Deleted | 是 | Number | 删除数据的条数 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
console.log('Databases:', Databases)
const { Deleted } = await manager.commonService('flexdb').call({
Action: 'DeleteItem',
Param: {
TableName: 'coll-1',
MgoQuery: JSON.stringify({ a: 2 }),
Tag: Databases[0].InstanceId
}
})
console.log('Deleted:', Deleted)
查询可回档时间
1. 接口描述
接口功能:获取所选表格可回档时间的交集
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
InstanceId | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
RestoreTimes | 是 | Array<String> | 可回档时间列表 |
RequestId | 是 | String | 请求唯一标识 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
const { RestoreTimes } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTime',
Param: {
InstanceId: Databases[0].InstanceId
}
})
console.log(RestoreTimes)
获取可回档表格
1. 接口描述
接口功能:获取可回档表格
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
InstanceId | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
Time | 是 | String | 可回档时间 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
Tables | 是 | Array<String> | 可回档表格列表 |
RequestId | 是 | String | 请求唯一标识 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
const { RestoreTimes } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTime',
Param: {
InstanceId: Databases[0].InstanceId
}
})
console.log(RestoreTimes)
const { Tables } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTables',
Param: {
InstanceId: Databases[0].InstanceId,
Time: RestoreTimes[0]
}
})
console.log(Tables)
实例表格回档
1. 接口描述
接口功能:实例表格回档
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
InstanceId | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
Time | 是 | String | 可回档时间 |
ModifyTableNamesInfo | 是 | Array<ModifyTableNamesInfoItem> | 回档表格信息 |
ModifyTableNamesInfoItem
字段 | 必填 | 类型 | 说明 |
---|
OldTableName | 是 | String | 原表名 |
NewTableName | 是 | String | 新表名(新表名一定不能与原表名相同!) |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
FlowId | 是 | String | 流程 ID |
RequestId | 是 | String | 请求唯一标识 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
const { RestoreTimes } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTime',
Param: {
InstanceId: Databases[0].InstanceId
}
})
console.log(RestoreTimes)
const { Tables } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTables',
Param: {
InstanceId: Databases[0].InstanceId,
Time: RestoreTimes[0]
}
})
console.log(Tables)
const { FlowId } = await manager.commonService('flexdb').call({
Action: 'RestoreTCBTables',
Param: {
InstanceId: Databases[0].InstanceId,
Time: RestoreTimes[0],
ModifyTableNamesInfo: [
{
OldTableName: 'coll-1',
NewTableName: 'coll-1_bak'
}
]
}
})
console.log('FlowId:', FlowId)
获取回档任务
1. 接口描述
接口功能:获取回档任务
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
InstanceId | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
Tasks | 是 | Array<RestoreTask> | 可回档表格列表 |
RequestId | 是 | String | 请求唯一标识 |
RestoreTask
字段 | 必填 | 类型 | 说明 |
---|
Tables | 是 | Array<[ModifyTableNamesInfoItem](#ModifyTableNamesInfoItem)> | 回档任务涉及表格 |
CreateTime | 是 | String | 任务创建时间 |
Status | 是 | Number | 当前任务状态(0-待执行,1-运行中,2-已完成) |
EndTime | 是 | String | 任务完成时间 |
RestoreTime | 是 | String | 回档时间点 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
const { Tasks } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTask',
Param: {
InstanceId: Databases[0].InstanceId
}
})
console.log('Tasks:', Tasks)
修改表名
1. 接口描述
接口功能:修改表名
接口声明:manager.commonService('flexdb').call(option): Promise<Object>
2. 输入参数
字段 | 必填 | 类型 | 说明 |
---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|
Tag | 是 | String | mongo 实例 ID, 可通过 envInfo 接口获取 |
ModifyTableInfo | 是 | Array<[ModifyTableNamesInfoItem](#ModifyTableNamesInfoItem)> | 修改表名信息 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|
FlowId | 是 | String | 流程 ID |
RequestId | 是 | String | 请求唯一标识 |
4. 示例代码
const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
}
const manager = new CloudBase(cloudBaseConfig)
const { EnvInfo } = await manager.env.getEnvInfo()
const { Databases } = EnvInfo
const { FlowId } = await manager.commonService('flexdb').call({
Action: 'ModifyNameSpace',
Param: {
Tag: Databases[0].InstanceId,
ModifyTableInfo: [
{
OldTableName: 'coll-1_bak',
NewTableName: 'coll-1_bak_modify'
}
]
}
})
console.log('FlowId:', FlowId)