RunDBCommand - 执行数据库命令

执行数据库命令。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
mpserverless:RunDBCommand
  • 全部资源
    *

请求参数

名称类型必填描述示例值
SpaceIdstring

服务空间 ID。

ach41172-adba-4af1-b2e5-63fc5f56a649
Bodystring

请求数据库时的命令,格式为 JSON String。

包含两个必须字段:

  • command: 包含集合操作、索引操作、数据操作命令。

集合操作命令:

  • collections: 获取集合列表;
  • createCollection: 创建集合,需要字段 name,待创建集合的名称;

索引操作命令:

  • listIndexes: 获取索引列表,需要字段 collection;
  • createIndex: 创建索引,需要字段 collection,field,options;
  • dropIndex: 删除索引,需要 dropIndex 字段;

数据操作命令:

  • 支持 find,insertOne,replaceOne 等,需要 collection 字段、options 字段,每个命令有不同的 options,具体内容参考开发指南;

例如:

  • command 参数为 find 时,需要 query 字段
  • command 参数为 replaceOne 时,需要 filter 和 doc 字段
{"command":"findOne","collection":"test_collection","query":{"name":"tome"}}

返回参数

名称类型描述示例值
object
RequestIdstring

请求 ID。

F75E60FA-7583-4E2E-AC14-6C608F89804
Resultstring

数据库返回结果,格式为 JSON String。

{"_id":"5d107e5af957c439d505b95b","age":1,"name":"aaaaa","time":1561362071732}
AffectedDocsinteger

此次操作影响的数据库文档数量。

1

示例

正常返回示例

JSON格式

{
  "RequestId": "F75E60FA-7583-4E2E-AC14-6C608F89804",
  "Result": "{\"_id\":\"5d107e5af957c439d505b95b\",\"age\":1,\"name\":\"aaaaa\",\"time\":1561362071732}",
  "AffectedDocs": 1
}

错误码

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
暂无变更历史

该接口功能较复杂,以下举例说明部分使用方法,供参考:

获取集合列表

params 入参:

{
    "SpaceId": "mp-c68e6766-2bda-4263-916d-****",
    "Body": "{\"command\":\"collections\"}"
}

data 结果:

{
	"AffectedDocs":5,
	"RequestId":"4CFE11BE-536C-58DD-****",
	"Success":true,
	"Result":"[\"album\",\"photo\",\"test\",\"users\",\"wallpaper\"]"
}

创建集合

params 入参:

{
    "SpaceId": "mp-c68e6766-2bda-4263-916d-****",
    "Body": "{\"command\":\"createCollection\", \"name\":\"mytable\"}"
}

data 结果:

{
	"AffectedDocs":1,
	"RequestId":"042ED29A-3148-5133-ABEA-****",
	"Success":true,
	"Result":"[\"mytable\"]"
}

创建索引

给集合 mytable 创建非唯一组合索引,按照 userId 升序、userName 降序。

params 入参:

{
    "SpaceId": "mp-c68e6766-2bda-4263-916d-****",
    "Body": "{\"command\":\"createIndex\", \"collection\":\"mytable\", \"field\":{\"userId\":1,\"userName\":-1}, \"options\":{\"name\":\"idx-userid-username\", \"unique\":false} }"
}

data 结果:

{
	"AffectedDocs":0,
	"RequestId":"C67E7C63-EB30-506E-BF28-****",
	"Success":true,
	"Result":"idx-userid-username"
}

获取索引列表

params 入参:

{
    "SpaceId": "mp-c68e6766-2bda-4263-916d-****",
    "Body": "{\"command\":\"listIndexes\", \"collection\":\"mytable\"}"
}

data 结果:

{
    "AffectedDocs": 2,
    "RequestId": "8B8F315A-FBCA-560E-8C85-****",
    "Success": true,
    "Result": "[{\"v\":2,\"key\":{\"_id\":1},\"name\":\"_id_\",\"ns\":\"db_ALYEZT****_mp-c68e6766-2bda-4263-916d-****.mytable\"},{\"v\":2,\"key\":{\"userId\":1,\"userName\":-1},\"name\":\"idx-userid-username\",\"ns\":\"db_ALYEZT****_mp-c68e6766-2bda-4263-916d-****.mytable\"}]"
}

删除索引

params 入参:

{
    "SpaceId": "mp-c68e6766-2bda-4263-916d-****",
    "Body": "{\"command\":\"dropIndex\", \"collection\":\"mytable\", \"indexName\":\"idx-userid-username\"}"
}

data 结果:

{
    "AffectedDocs": 0,
    "RequestId": "1EE343F7-9DE8-534C-AE12-****",
    "Success": true
}

插入一条数据

params 入参:

{
    "SpaceId": "mp-c68e6766-2bda-4263-916d-****",
    "Body": "{\"command\":\"insertOne\", \"collection\":\"mytable\", \"doc\":{\"userId\":1, \"userName\":\"张三\"}}"
}

data 结果:

{
    "AffectedDocs": 1,
    "RequestId": "B1032DBA-51CF-5E47-91C5-****",
    "Success": true,
    "Result": "{\"insertedId\":\"636496e2f43e60aba4939f5f\",\"ok\":1,\"n\":1}"
}

查询前十条数据

params 入参:

{
    "SpaceId": "mp-c68e6766-2bda-4263-916d-****",
    "Body": "{\"command\":\"find\", \"collection\":\"mytable\", \"query\":{}, \"options\":{\"skip\":0, \"limit\":10}}"
}

data 结果:

{
    "AffectedDocs": 2,
    "RequestId": "AB1F4B1C-F6E6-5E49-AB4B-****",
    "Success": true,
    "Result": "[{\"_id\":\"636496e2f43e60aba4939f5f\",\"userName\":\"张三\",\"userId\":1},{\"_id\":\"636496ef819ce88b66f34b6d\",\"userName\":\"李四\",\"userId\":2}]"
}