Container class
用于按 ID 读取、替换或删除特定现有容器的作。
请参阅 容器 创建新容器,以及读取/查询所有容器;使用 .containers
。
注意:所有这些作都针对固定预算进行调用。
应设计系统,以便这些调用与应用程序进行子线性缩放。
例如,在每次调用 container(id).read()
之前不要调用 item.read()
,以确保容器存在;在应用程序启动时执行此作。
属性
conflicts | 读取和查询给定容器冲突的作。 若要读取或删除特定冲突,请使用 |
database | |
id | |
items | 用于创建新项和读取/查询所有项的作 若要读取、替换或删除现有项,请使用 示例 创建新项
|
scripts | 存储过程、触发器和用户定义的函数的所有作 |
url | 返回资源的引用 URL。 用于在权限中链接。 |
方法
conflict(string, Partition |
用于按 ID 读取、替换或删除特定现有 冲突。 使用 示例
|
delete(Request |
删除容器 示例
|
delete |
删除所有文档属于提供的分区键值的容器 示例
|
get |
示例
|
get |
首先通过查看缓存来获取分区键定义,否则通过读取集合来获取分区键定义。 |
get |
|
initialize |
预热容器的加密相关缓存。 示例
|
item(string, Partition |
用于按 ID 读取、替换或删除特定现有 项。 使用 示例 替换项
|
read(Request |
读取容器的定义 示例
|
read |
获取容器上的产品/服务。 如果不存在,则返回未定义的 OfferResponse。 示例
|
read |
获取容器的分区键范围。 示例
|
replace(Container |
替换容器的定义 示例
|
属性详细信息
conflicts
database
id
id: string
属性值
string
items
用于创建新项和读取/查询所有项的作
若要读取、替换或删除现有项,请使用 .item(id)
。
示例
创建新项
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { resource: createdItem } = await container.items.create({
id: "<item id>",
properties: {},
});
Items items
属性值
scripts
url
返回资源的引用 URL。 用于在权限中链接。
string url
属性值
string
方法详细信息
conflict(string, PartitionKey)
用于按 ID 读取、替换或删除特定现有 冲突。
使用 .conflicts
创建新的冲突,或查询/读取所有冲突。
示例
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const container = database.container("Test Container");
const { resource: conflict } = await container.conflict("<conflict-id>").read();
function conflict(id: string, partitionKey?: PartitionKey): Conflict
参数
- id
-
string
冲突的 ID。
- partitionKey
- PartitionKey
返回
delete(RequestOptions)
删除容器
示例
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
await client.database("<db id>").container("<container id>").delete();
function delete(options?: RequestOptions): Promise<ContainerResponse>
参数
- options
- RequestOptions
返回
Promise<ContainerResponse>
deleteAllItemsForPartitionKey(PartitionKey, RequestOptions)
删除所有文档属于提供的分区键值的容器
示例
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({
id: "Test Container",
partitionKey: {
paths: ["/state"],
},
});
const cities = [
{ id: "1", name: "Olympia", state: "WA", isCapitol: true },
{ id: "2", name: "Redmond", state: "WA", isCapitol: false },
{ id: "3", name: "Olympia", state: "IL", isCapitol: false },
];
for (const city of cities) {
await container.items.create(city);
}
await container.deleteAllItemsForPartitionKey("WA");
function deleteAllItemsForPartitionKey(partitionKey: PartitionKey, options?: RequestOptions): Promise<ContainerResponse>
参数
- partitionKey
- PartitionKey
要删除的项的分区键值
- options
- RequestOptions
返回
Promise<ContainerResponse>
getFeedRanges()
示例
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { resources: ranges } = await container.getFeedRanges();
function getFeedRanges(): Promise<readonly FeedRange[]>
返回
Promise<readonly FeedRange[]>
可以提取更改源的所有源范围。
getPartitionKeyDefinition()
警告
现已弃用此 API。
This method has been renamed to readPartitionKeyDefinition.
首先通过查看缓存来获取分区键定义,否则通过读取集合来获取分区键定义。
function getPartitionKeyDefinition(): Promise<ResourceResponse<PartitionKeyDefinition>>
返回
Promise<ResourceResponse<PartitionKeyDefinition>>
getQueryPlan(string | SqlQuerySpec)
function getQueryPlan(query: string | SqlQuerySpec): Promise<Response<PartitionedQueryExecutionInfo>>
参数
- query
-
string | SqlQuerySpec
返回
Promise<Response<PartitionedQueryExecutionInfo>>
initializeEncryption()
预热容器的加密相关缓存。
示例
import { ClientSecretCredential } from "@azure/identity";
import {
AzureKeyVaultEncryptionKeyResolver,
CosmosClient,
EncryptionType,
EncryptionAlgorithm,
ClientEncryptionIncludedPath,
ClientEncryptionPolicy,
} from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const credentials = new ClientSecretCredential("<tenant-id>", "<client-id>", "<app-secret>");
const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);
const client = new CosmosClient({
endpoint,
key,
clientEncryptionOptions: {
keyEncryptionKeyResolver: keyResolver,
},
});
const { database } = await client.databases.createIfNotExists({ id: "<db id>" });
const paths = ["/path1", "/path2", "/path3"].map(
(path) =>
({
path: path,
clientEncryptionKeyId: "< cek - id >",
encryptionType: EncryptionType.DETERMINISTIC,
encryptionAlgorithm: EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA256,
}) as ClientEncryptionIncludedPath,
);
const clientEncryptionPolicy: ClientEncryptionPolicy = {
includedPaths: paths,
policyFormatVersion: 2,
};
const containerDefinition = {
id: "Test Container",
partitionKey: {
paths: ["/id"],
},
clientEncryptionPolicy: clientEncryptionPolicy,
};
const { container } = await database.containers.createIfNotExists(containerDefinition);
await container.initializeEncryption();
function initializeEncryption(): Promise<void>
返回
Promise<void>
item(string, PartitionKey)
用于按 ID 读取、替换或删除特定现有 项。
使用 .items
创建新项或查询/读取所有项。
示例
替换项
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { body: replacedItem } = await container
.item("<item id>", "<partition key value>")
.replace({ id: "<item id>", title: "Updated post", authorID: 5 });
function item(id: string, partitionKeyValue?: PartitionKey): Item
参数
- id
-
string
项的 ID。
- partitionKeyValue
- PartitionKey
项 分区键的值
返回
read(RequestOptions)
读取容器的定义
示例
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { resource: database } = await client.database("<db id>").container("<container id>").read();
function read(options?: RequestOptions): Promise<ContainerResponse>
参数
- options
- RequestOptions
返回
Promise<ContainerResponse>
readOffer(RequestOptions)
获取容器上的产品/服务。 如果不存在,则返回未定义的 OfferResponse。
示例
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { resource: offer } = await client
.database("<db id>")
.container("<container id>")
.readOffer();
function readOffer(options?: RequestOptions): Promise<OfferResponse>
参数
- options
- RequestOptions
返回
Promise<OfferResponse>
readPartitionKeyRanges(FeedOptions)
获取容器的分区键范围。
示例
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { resources: ranges } = await container.readPartitionKeyRanges().fetchAll();
function readPartitionKeyRanges(feedOptions?: FeedOptions): QueryIterator<PartitionKeyRange>
参数
- feedOptions
- FeedOptions
请求的选项。
返回
QueryIterator<PartitionKeyRange>
分区键范围的迭代器。
replace(ContainerDefinition, RequestOptions)
替换容器的定义
示例
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const containerDefinition = {
id: "Test Container",
partitionKey: {
paths: ["/key1"],
},
throughput: 1000,
};
const { container } = await database.containers.createIfNotExists(containerDefinition);
containerDefinition.throughput = 400;
const { container: replacedContainer } = await container.replace(containerDefinition);
function replace(body: ContainerDefinition, options?: RequestOptions): Promise<ContainerResponse>
参数
- body
- ContainerDefinition
- options
- RequestOptions
返回
Promise<ContainerResponse>