Skip to main content

Document Database

createCollection

1. API Description

API feature: This API can create a collection.

API Declaration:

createCollection(collectionName: string): Promise<Object>

createCollectionIfNotExists(collectionName: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
CollectionNameRequiredStringCollection name

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

let { database } = new CloudBase(cloudbaseConfig)

async function test() {
let result = await database.createCollection('collectionName')
console.log(result)
}

test()

checkCollectionExists

1. API Description

API feature: Check if the collection exists

API declaration: checkCollectionExists(collectionName: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
-RequiredStringCollection name

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
MsgNoStringError message
ExistsRequiredBooleanWhether the collection already exists

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

let { database } = new CloudBase(cloudbaseConfig)

async function test() {
let result = await database.checkCollectionExists('collectionAlreadyExists')
if (result.Exists) {
// Collection exists
} else {
// Collection does not exist
}
}

test()

deleteCollection

1. API Description

API feature: Deletes a collection

API declaration: deleteCollection(collectionName: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
CollectionNameRequiredStringCollection name

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
ExistsNoBooleanNot returned if present; returns false if absent

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.deleteCollection('collectionAlreadyExists')
if (result.Exists === false) {
// Collection does not exist
}
}

test()

updateCollection

1. API Description

API feature: This API can update a collection.

API declaration: updateCollection(collectionName: string, options: array): Promise<Object>

This API can update collections, but currently supports updating indexes.

⚠️ Currently, this API can only update indexes, including creation and deletion.

  • If an index already exists during creation, it will be deleted first and then recreated.
  • Since a single API call can create multiple indexes simultaneously, partial failures may occur (while others succeed), and the API will throw an exception.

2. Input Parameters

FieldRequiredTypeDescription
collectionNameRequiredStringCollection name
optionsRequiredArray<Option>Configuration options

Option

FieldRequiredTypeDescription
CreateIndexesNoArray<CreateIndex>List of indexes to be created
DropIndexesNoArray<DropIndex>List of indexes to be deleted

CreateIndex

FieldRequiredTypeDescription
IndexNameRequiredStringIndex name
MgoKeySchemaRequiredArray<MgoKeySchema>Index rules

MgoKeySchema

FieldRequiredTypeDescription
MgoIsUniqueRequiredbooleanWhether unique
MgoIndexKeysRequiredArray<MgoIndexKey>List of fields included in the index

MgoIndexKey

FieldRequiredTypeDescription
NameRequiredStringIndex name
DirectionRequiredStringIndex direction: 1 for ASC, -1 for DESC, 2d for bidirectional (must be placed first if present). Note: For geospatial indexes, set this value to "2dsphere".

DropIndex

FieldRequiredTypeDescription
IndexNameRequiredStringIndex name

Two independent methods for updating indexes: creating and deleting. CreateIndexes and DropIndexes cannot be passed simultaneously in options.

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

Create a new index

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.updateCollection('collectionAlreadyExists', {
CreateIndexes: [
{
IndexName: 'index_a',
MgoKeySchema: {
MgoIndexKeys: [
// 2d must be placed first
{ 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()

Delete Indexes

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

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. API Description

API feature: Query collection details

API declaration: describeCollection(collectionName: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
CollectionNameRequiredStringCollection name

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
IndexNumRequiredNumberNumber of indexes
IndexesRequiredArrayIndex list
Indexes[N].NameRequiredStringIndex name
Indexes[N].SizeRequiredStringIndex size, unit: bytes
Indexes[N].UniqueRequiredStringWhether the index is unique
Indexes[N].KeysRequiredArrayIndex keys
Indexes[N].Keys[N].NameRequiredStringKey name
Indexes[N].Keys[N].DirectionRequiredStringIndex direction: 1: ASC, -1: DESC, 2d: bidirectional
Indexes[N].AccessesRequiredArrayIndex usage information
Indexes[N].Accesses[N].OpsRequiredNumberNumber of index hits
Indexes[N].Accesses[N].SinceRequiredStringStart time of hit count

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

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) // Iterate through all indexes
}
}

test()

listCollections

1. API Description

API feature: Query collection details

API declaration: listCollections(options: object): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
MgoOffsetNoNumberOptional, offset
MgoLimitNoNumberOptional, quantity limit

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
CollectionsRequiredArrayCollection list
Collections[N].CollectionNameRequiredStringCollection name
Collections[N].CountRequiredNumberNumber of documents in the collection
Collections[N].SizeRequiredNumberSize of the collection in bytes
Collections[N].IndexCountRequiredNumberNumber of indexes in the collection
Collections[N].IndexSizeRequiredNumberSize of indexes in the collection, in bytes
PagerRequiredObjectPagination information for this query
Pager.OffsetRequiredNumberOffset
Pager.LimitRequiredNumberLimit
Pager.TotalRequiredNumberTotal number of collections

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

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) // Iterate through all collections
}
}

checkIndexExists

1. API Description

API feature: Check whether the index exists

API declaration: checkIndexExists(collectionName: string, indexName: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
collectionNameRequiredStringCollection name
indexNameRequiredStringIndex name

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
ExistsRequiredBooleanWhether the index exists

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

let { database } = new CloudBase(cloudbaseConfig)
async function test() {
let result = await database.checkIndexExists(
'collectionAlreadyExists',
'index_to_be_delete'
)
const { Exists } = result
if (Exists === true) {
// The index exists
}
}
test()

import

1. API Description

API Feature: Import Data

API declaration: import(collectionName: string, file: object, options: object): Promise<Object>

Note:

  • The API returns immediately, and the migration status (success|failure) can be queried via migrateStatus.
  • Importing data requires first uploading the file to COS in the environment (same EnvId), so it will create objects in COS.
  • Because the successful return of this function only indicates that the upload is successful, the import operation begins after uploading. This API cannot determine whether the import is complete. Therefore, the object needs to be manually deleted after use.

2. Input Parameters

FieldRequiredTypeDescription
collectionNameRequiredStringCollection name
fileRequiredArrayData, one of the following methods must be selected
⁃ FilePathRequiredStringLocal data file path
⁃ ObjectKeyRequiredStringCOS Key in the current environment
optionsOptionalArrayOptional parameters
⁃ ObjectKeyPrefixOptionalStringCOS Key prefix, default is tmp/db-imports/
FileTypeOptionalStringFile type: csv or json. If this parameter is not passed, it defaults to the file extension. Ensure to use the correct file extension.
⁃ StopOnErrorOptionalBooleanwhether to stop the import when encountering errors
⁃ ConflictModeOptionalStringConflict resolution method: insert or upsert

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
JobIdRequiredNumberTask ID, used to query migration status in the migrateStatus API

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

let { database } = new CloudBase(cloudbaseConfig)

async function test() {
let res = await database.import(
'collectionAlreadyExists',
{
ObjectKey: 'data.csv'
},
{
// "FileType" : "csv",
StopOnError: true,
ConflictMode: 'upsert'
}
)

const { JobId } = res
console.log(JobId)
}

test()

export

1. API Description

API feature: export data, migration status (success|failure) can be queried via migrateStatus.

API declaration: export(collectionName: string, file: object, options: object): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
collectionNameRequiredStringCollection name
fileRequiredArrayData, one of the following methods must be selected
⁃ ObjectKeyRequiredStringCOS Key in the current environment
optionsOptionalArrayOptional parameters
FileTypeOptionalStringFile type: csv or json. If this parameter is not passed, it defaults to the file extension. Ensure to use the correct file extension.
⁃ QueryNoStringJSON string, supports mongo commands. Example: '{ a: { gte: 3 } }'. Compatible with mongodb query syntax
SkipNoNumberoffset
⁃ LimitOptionalNumberLimit
⁃ SortOptionalNumberJSON string. If an index exists, sorting is not supported. The dataset length must be less than 32 MB.
⁃ FieldsOptionalStringString, fields separated by commas. Required when FileType=csv.

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
JobIdRequiredNumberTask ID, used to query migration status in the migrateStatus API

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

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. API Description

API feature: This API can query the migration (import|export) status.

API declaration: migrateStatus(jobId: number): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
jobIdRequiredIntegerTask ID, the JobId returned by the import and export APIs

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
StatusRequiredStringTask status. Possible values: waiting: Waiting, reading: Reading, writing: Writing, migrating: Migrating, success: Success, fail: Failure
RecordSuccessRequiredIntegerNumber of successfully migrated data records
RecordFailRequiredIntegerNumber of failed data records
ErrorMsgRequiredStringReason for migration failure
FileUrlRequiredStringFile download URL, only valid for database export.

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}

let { database } = new CloudBase(cloudbaseConfig)

async function test() {
let result = await database.migrateStatus(100093275)
console.log(result.Status) // Print the migration status
}

test()

distribution

1. API Description

API feature: Query data distribution

API declaration: distribution(): Promise<Object>

2. Input Parameters

N/A

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
CollectionsRequiredArrayCollection list
Collections[N].CollectionNameRequiredStringCollection name
Collections[N].DocCountRequiredNumberDocument count

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
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()

Insert Document

1. API Description

API Feature: This API is used to insert data into the database.

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
TableNameRequiredStringTable name
MgoDocsRequiredArray<String>Documents to be inserted
TagRequiredStringmongo instance ID, which can be obtained via the envInfo API

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
InsertedIdsRequiredArray<String>Primary key _id of the successfully inserted data collection

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

const data = JSON.stringify({
a: 1
})

// Obtain the database instance ID
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)

Query Documents

1. API Description

API Feature: This API is used to query database documents.

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
TableNameYesStringTable name
MgoLimitYesNumberlimit number for query results
MgoProjectionNoStringProjection condition, which is a json string. For example, { item: 1, status: 1 } indicates that the result returns the item and status columns; { item: 0 } indicates that the item column is not returned.
TagRequiredStringmongo instance ID, which can be obtained via the envInfo API
MgoQueryNoStringQuery condition, which is a json string, such as {"test":1}
MgoOffsetNoNumberQuery results start returning from the offset record
MgoSortNoStringSort condition, which is a json string, example '[{"key":"_id","direction":1}]'

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
PagerRequiredPagerPagination information
DataRequiredArray<String>Data set that meets the query conditions
FieldRequiredTypeDescription
OffsetRequiredNumberPagination offset
LimitRequiredNumberNumber of records returned per page

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

// Obtain the database instance ID
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)

Update Documents

1. API Description

API Feature: This API is used to update database documents.

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
TagRequiredStringmongo instance ID, which can be obtained via the envInfo API
MgoQueryNoStringquery condition, which is a json string, such as {"test":1}
MgoUpdateYesStringUpdate content
FieldRequiredTypeDescription
MgoIsMultiNoBooleanWhether to update multiple
MgoUpsertNoBooleanwhether to use upsert mode

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
UpsertedIdRequiredStringID of the inserted data _id
ModifiedNumRequiredNumberNumber of modified rows
MatchedNumRequiredNumberNumber of results matched by the update condition

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

// Obtain the database instance ID
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)

Delete Document

1. API Description

API Feature: This API is used to delete database documents.

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
TagRequiredStringmongo instance ID, which can be obtained via the envInfo API
MgoQueryNoStringquery condition, which is a json string, such as {"test":1}
FieldRequiredTypeDescription
MgoIsMultiNoBooleanWhether to update multiple

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
DeletedRequiredNumberNumber of deleted data

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

// Obtain the database instance ID
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)

Query Restorable Time

1. API Description

API feature: Obtain the intersection of restorable times for selected tables

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
InstanceIdRequiredStringmongo instance ID, which can be obtained via the envInfo API

3. Return Results

FieldRequiredTypeDescription
RestoreTimesRequiredArray<String>Restorable time list
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

// Obtain the database instance ID
const { EnvInfo } = await manager.env.getEnvInfo()

const { Databases } = EnvInfo

// Query restorable time
const { RestoreTimes } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTime',
Param: {
InstanceId: Databases[0].InstanceId
}
})

console.log(RestoreTimes)

Obtain Restorable Tables

1. API Description

API feature: Obtain restorable tables

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
InstanceIdRequiredStringmongo instance ID, which can be obtained via the envInfo API
TimeRequiredStringRestorable time

3. Return Results

FieldRequiredTypeDescription
TablesRequiredArray<String>Restorable table list
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

// Obtain the database instance ID
const { EnvInfo } = await manager.env.getEnvInfo()

const { Databases } = EnvInfo

// Query restorable time
const { RestoreTimes } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTime',
Param: {
InstanceId: Databases[0].InstanceId
}
})

console.log(RestoreTimes)

// Obtain restorable tables
const { Tables } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTables',
Param: {
InstanceId: Databases[0].InstanceId,
Time: RestoreTimes[0]
}
})

console.log(Tables)

Instance Table Restoration

1. API Description

API feature: Instance table restoration

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
InstanceIdRequiredStringmongo instance ID, which can be obtained via the envInfo API
TimeRequiredStringRestorable time
ModifyTableNamesInfoRequiredArray<ModifyTableNamesInfoItem>Restore table information

ModifyTableNamesInfoItem

FieldRequiredTypeDescription
OldTableNameRequiredStringOriginal table name
NewTableNameRequiredStringNew table name (The new table name must not be the same as the original table name!)

3. Return Results

FieldRequiredTypeDescription
FlowIdRequiredStringFlow ID
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

// Obtain the database instance ID
const { EnvInfo } = await manager.env.getEnvInfo()

const { Databases } = EnvInfo

// Query restorable time
const { RestoreTimes } = await manager.commonService('flexdb').call({
Action: 'DescribeRestoreTime',
Param: {
InstanceId: Databases[0].InstanceId
}
})

console.log(RestoreTimes)

// Obtain restorable tables
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)

Obtain Restore Tasks

1. API Description

API feature: Obtain Restore Tasks

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
InstanceIdRequiredStringmongo instance ID, which can be obtained via the envInfo API

3. Return Results

FieldRequiredTypeDescription
TasksRequiredArray<RestoreTask>Restorable table list
RequestIdRequiredStringUnique identifier of the request

RestoreTask

FieldRequiredTypeDescription
TablesRequiredArray<[ModifyTableNamesInfoItem](#ModifyTableNamesInfoItem)>Tables involved in the restore task
CreateTimeRequiredStringTask creation time
StatusRequiredNumberCurrent task status (0-pending, 1-running, 2-completed)
EndTimeRequiredStringTask completion time
RestoreTimeRequiredStringRestore point

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

// Obtain the database instance ID
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)

Modifying Table Names

1. API Description

API feature: Modify table names

API declaration: manager.commonService('flexdb').call(option): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
TagRequiredStringmongo instance ID, which can be obtained via the envInfo API
ModifyTableInfoRequiredArray<[ModifyTableNamesInfoItem](#ModifyTableNamesInfoItem)>Modify table name information

3. Return Results

FieldRequiredTypeDescription
FlowIdRequiredStringFlow ID
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

const cloudbaseConfig = {
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
}
const manager = new CloudBase(cloudBaseConfig)

// Obtain the database instance ID
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)

runCommands

1. API Description

API feature: Send native commands directly to the cloud database (Document-based/MongoDB), supporting UPDATE/QUERY/INSERT/DELETE/COMMAND operations

API declaration: app.database.runCommands(options): Promise<Object>

version tip

This API has been supported since v5.0.0.

2. Input Parameters

FieldRequiredTypeDescription
MgoCommandsRequiredIMgoCommandParam[]List of commands to be executed, see description below
TagNoStringInstance ID (e.g. tnt-xxxx). If not passed, the current environment instance will be used automatically.
EnvIdNoStringEnvironment ID. If not passed, the current environment will be used automatically.
MongoConnectorNoIMongoConnectorMongoDB connector instance information

IMgoCommandParam

FieldRequiredTypeDescription
TableNameRequiredStringCollection (table) name
CommandTypeRequiredStringOperation type: UPDATE / QUERY / INSERT / DELETE / COMMAND
CommandRequiredStringCommand content (JSON string)

3. Return Results

FieldTypeDescription
RequestIdStringUnique identifier of the request
DataString[]List of returned results, each element is a JSON string

4. Sample Code

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const res = await app.database.runCommands({
MgoCommands: [
{
TableName: 'todos',
CommandType: 'QUERY',
Command: JSON.stringify({ filter: { status: 'done' }, limit: 10 })
}
]
})
const result = JSON.parse(res.Data[0])
console.log(result)
}

test()

describeRestoreTables

1. API Description

API feature: Query the list of restorable collections (tables) at a specified time point.

API declaration: app.database.describeRestoreTables(time, filters?, instanceId?): Promise<Object>

version tip

This API has been supported since v5.0.0.

2. Input Parameters

FieldRequiredTypeDescription
timeRequiredStringTarget restore time, format YYYY-MM-DD HH:MM:SS
filtersNoString[]Collection name filter list. If not passed, all restorable collections will be returned.
instanceIdNoStringDatabase instance ID. If not passed, the current environment instance will be used automatically.

3. Return Results

FieldTypeDescription
RequestIdStringUnique identifier of the request
TablesString[]Restorable collection name list

4. Sample Code

async function test() {
const { Tables } = await app.database.describeRestoreTables('2025-01-01 12:00:00')
console.log('Restorable collections:', Tables)
}

test()

describeRestoreTime

1. API Description

API feature: Query the restorable time range of the database

API declaration: app.database.describeRestoreTime(instanceId?): Promise<Object>

version tip

This API has been supported since v5.0.0.

2. Input Parameters

FieldRequiredTypeDescription
instanceIdNoStringDatabase instance ID. If not passed, the current environment instance will be used automatically.

3. Return Results

FieldTypeDescription
RequestIdStringUnique identifier of the request
RestoreTimesString[]List of restorable time points
RestoreTimeRangesObject[]Optional time range for restoring to any point in time

describeRestoreTask

1. API Description

API feature: Querying Database Restore Task List and Status

API declaration: app.database.describeRestoreTask(instanceId?): Promise<Object>

version tip

This API has been supported since v5.0.0.

2. Input Parameters

FieldRequiredTypeDescription
instanceIdNoStringDatabase instance ID. If not passed, the current environment instance will be used automatically.

3. Return Results

FieldTypeDescription
RequestIdStringUnique identifier of the request
TasksIRestoreTask[]Restore task list

IRestoreTask

FieldTypeDescription
TaskIdStringTask ID
StatusStringTask status
TimeStringTask creation time
EnvIdStringEnvironment ID
TypeStringRestore category

restoreTables

1. API Description

API feature: Restore a specified collection to a time point, supporting renaming of the target collection.

API declaration: app.database.restoreTables(time, modifyTableNamesInfo, instanceId?): Promise<Object>

version tip

This API has been supported since v5.0.0.

2. Input Parameters

FieldRequiredTypeDescription
timeRequiredStringTarget restore time, format YYYY-MM-DD HH:MM:SS
modifyTableNamesInfoRequiredIModifyTableNamesInfo[]Collection name mapping, see description below
instanceIdNoStringDatabase instance ID. If not passed, the current environment instance will be used automatically.

IModifyTableNamesInfo

FieldRequiredTypeDescription
OldTableNameRequiredStringSource collection name
NewTableNameRequiredStringTarget restore collection name (can be different from the source name)

3. Return Results

FieldTypeDescription
RequestIdStringUnique identifier of the request
FlowIdNumberRestore workflow ID, can be used to query the progress.

4. Sample Code

async function test() {
const { FlowId } = await app.database.restoreTables(
'2025-01-01 12:00:00',
[{ OldTableName: 'todos', NewTableName: 'todos_restore' }]
)
console.log('Restore task FlowId:', FlowId)
}

test()