Azure Cosmos DB Shell 命令参考

所有 Azure Cosmos DB Shell 命令的完整参考指南。

用于导航数据库和容器的命令。

cd - 更改目录

导航到数据库或容器。

语法:

cd <path>

例子:

# Navigate to a database
CS > cd mydb
# Navigate to a container
CS > cd users
# Go back one level
CS > cd ..
# Navigate to root
CS > cd /
CS >

ls -列表

列出当前位置的数据库或容器。

语法:

ls [options]

选项

  • -l:包含详细信息的长格式
  • -h:人类可读大小

例子:

# List databases
CS > ls

# List containers with details
CS > ls -l

# List containers in human-readable format
CS > ls -h

pwd - 打印工作目录

显示当前路径。

语法:

pwd

例子:

CS > pwd
/mydb/users

endpoint - 显示终结点

显示当前的 Cosmos DB 帐户终结点。

语法:

endpoint

例子:

CS > endpoint
https://myaccount.documents.azure.cn:443/

数据库管理命令

用于创建和管理数据库的命令。

mkdb - 创建数据库

创建新的 数据库。

语法:

mkdb <database_name> [options]

选项

  • --throughput <RU/s>:预配的吞吐量
  • --autoscale <max_RU/s>:自动缩放最大吞吐量

例子:

# Create database with default settings
CS > mkdb mydb

# Create database with provisioned throughput
CS > mkdb mydb --throughput 400

# Create database with autoscale
CS > mkdb mydb --autoscale 4000

rmdb - 删除数据库

删除数据库及其所有内容。

语法:

rmdb <database_name> [--force]

选项

  • --force:跳过确认提示

例子:

# Delete database (with confirmation)
CS > rmdb tempdb

# Delete database without confirmation
CS > rmdb tempdb --force

容器管理命令

用于创建和管理容器的命令。

mkcon - 生成容器

创建新容器。

语法:

mkcon <container_name> -pk <partition_key> [options]

选项

  • -pk--partition-key:分区键路径(必需)
  • --throughput <RU/s>:预配的吞吐量
  • --autoscale <max_RU/s>:自动缩放最大吞吐量
  • --ttl <seconds>:生存时间(以秒为单位)
  • --unique-key <path>:唯一约束路径

例子:

# Create container with partition key
CS > mkcon users -pk /id

# Create with provisioned throughput
CS > mkcon users -pk /id --throughput 400

# Create with autoscale
CS > mkcon users -pk /id --autoscale 4000

# Create with TTL
CS > mkcon users -pk /id --ttl 86400

# Create with unique key
CS > mkcon users -pk /id --unique-key /email

rmcon - 删除容器

删除容器。

语法:

rmcon <container_name> [--force]

选项

  • --force:跳过确认提示

例子:

# Delete container (with confirmation)
CS > rmcon tempcontainer

# Delete without confirmation
CS > rmcon tempcontainer --force

数据操作命令

用于查询和管理数据的命令。

query - 执行查询

对容器执行 SQL 查询。

语法:

query "<SQL_query>" [options]

选项

  • --partition-key <value>:指定目标查询的分区键
  • --max-items <count>:要返回的最大项数
  • --continuation-token <token>:分页的延续标记

例子:

# Query all documents
CS > query "SELECT * FROM c"

# Query with filter
CS > query "SELECT * FROM c WHERE c.status = 'active'"

# Query with partition key (faster)
CS > query "SELECT * FROM c WHERE c.id = 'user1'" --partition-key user1

# Query with limit
CS > query "SELECT TOP 10 * FROM c"

# Aggregate query
CS > query "SELECT c.status, COUNT(*) as count FROM c GROUP BY c.status"

# Join query
CS > query "SELECT c.id, c.name, o.orderId FROM c JOIN o IN c.orders"

create - 创建文档

插入新文档。

语法:

create item <JSON_document>

例子:

# Create simple document
CS > create item {"id": "user1", "name": "Alice"}

# Create nested document
CS > create item {"id": "user2", "name": "Bob", "address": {"city": "Seattle", "country": "USA"}}

# Create with array
CS > create item {"id": "user3", "name": "Charlie", "tags": ["vip", "premium"]}

update - 更新文档

更新现有文档。

语法:

update <JSON_document>

例子:

# Update document
CS > update {"id": "user1", "name": "Alice", "status": "active"}

# Partial update (with JSON merge semantics)
CS > update {"id": "user1", "status": "inactive"}

rm - 删除文档

删除文档。

语法:

rm <document_id> [--partition-key <value>]

选项

  • --partition-key <value>:指定分区键以加快删除速度

例子:

# Delete document
CS > rm user1

# Delete with partition key
CS > rm user1 --partition-key user1

get - 获取文档

按 ID 检索特定文档。

语法:

get <document_id> [--partition-key <value>]

选项

  • --partition-key <value>:指定分区键以加快检索速度

例子:

# Get document
CS > get user1

# Get with partition key
CS > get user1 --partition-key user1

实用工具命令

常规实用工具命令。

jq - JSON 处理

使用 jq 语法处理 JSON 输出。

语法:

<command> | jq '<jq_filter>'

例子:

# Pretty print JSON
CS > query "SELECT * FROM c" | jq .

# Extract specific fields
CS > query "SELECT * FROM c" | jq '.[] | {id, name}'

# Filter results
CS > query "SELECT * FROM c" | jq '.[] | select(.status == "active")'

# Transform data
CS > query "SELECT * FROM c" | jq '[.[] | {id, name}]'

echo - 显示文本

将文本输出到控制台。

语法:

echo "<text>"

例子:

CS > echo "Starting operations..."
Starting operations...

help - 显示帮助

显示帮助信息。

语法:

help [command]

例子:

# General help
CS > help

# Help for specific command
CS > help query

# Help for container commands
CS > help mkcon

version - 显示版本

显示 shell 版本。

语法:

version

例子:

CS > version
Azure Cosmos DB Shell 1.0.213-preview

exit - 退出 shell

退出 Cosmos DB Shell。

语法:

exit

例子:

CS > exit

命令链接和管道

可以使用管道(|)和重定向链接命令。

通过管道传递到 jq

CS > query "SELECT * FROM c" | jq '.[]'

管道到文件

CS > query "SELECT * FROM c" > output.json

管道到外部命令

CS > query "SELECT * FROM c" | grep "active"

合并多个操作

CS > query "SELECT * FROM c" | jq '.[] | select(.status == "active")' | wc -l

JSON 路径表达式

在查询中使用 JSON 路径表达式进行高级筛选。

例子:

# Query nested properties
CS > query "SELECT c.address.city FROM c"

# Array operations
CS > query "SELECT * FROM c WHERE ARRAY_CONTAINS(c.tags, 'vip')"

# String functions
CS > query "SELECT * FROM c WHERE STARTSWITH(c.name, 'A')"

# Numeric functions
CS > query "SELECT * FROM c WHERE c.age > 30"

连接命令

connect - 连接到帐户

切换到其他 Cosmos DB 帐户。

语法:

connect <connection_string|endpoint> [--auth-method <method>]

身份验证方法:

  • entra-id:Microsoft Entra ID(默认值,建议)
  • managed-identity:托管标识
  • key:帐户密钥

例子:

# Connect with Entra ID
CS > connect https://myaccount.documents.azure.cn:443/ --auth-method entra-id

# Connect with account key
CS > connect DefaultEndpointProtocol=https;AccountName=myaccount;... --auth-method key

最佳做法

  • 使用分区键 加快查询速度
  • 使用 TOP 或 --max-items 限制结果集
  • 使用投影 减少数据传输
  • 包含复杂操作管道的链命令
  • 使用 jq 进行 JSON 处理和格式设置
  • 在脚本文件中保存复杂查询

另请参阅