所有 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 处理和格式设置
- 在脚本文件中保存复杂查询