Container class
依標識符讀取、取代或刪除特定現有容器的作業。
請參閱 容器 來建立新的容器,以及讀取/查詢所有容器;使用 .containers。
注意:所有這些作業都會針對固定預算進行呼叫。
您應該設計您的系統,讓這些呼叫以子線性方式調整您的應用程式。
例如,在每次呼叫 container(id).read() 之前,請勿呼叫 item.read(),以確保容器存在;在應用程式啟動時執行此動作。
屬性
| conflicts | 讀取和查詢指定容器衝突的作業。 若要讀取或刪除特定衝突,請使用 |
| database | |
| id | |
| items | 建立新項目的作業,以及讀取/查詢所有專案 若要讀取、取代或刪除現有的專案,請使用 範例 建立新專案
|
| scripts | 預存程式、觸發程式和使用者定義函數的所有作業 |
| url | 傳回資源的參考 URL。 用於在許可權中連結。 |
方法
| conflict(string, Partition |
用來依標識碼讀取、取代或刪除特定現有的 衝突。 使用 範例
|
| delete(Request |
刪除容器 範例
|
| delete |
刪除所有文件屬於所提供分割區索引鍵值的容器 範例
|
| get |
範例
|
| get |
藉由讀取集合,先查看快取,以取得分割區索引鍵定義。 |
| get |
|
| initialize |
預熱容器的加密相關緩存。 範例
|
| item(string, Partition |
用來依標識碼讀取、取代或刪除特定現有的 專案。 使用 範例 取代項目
|
| 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)
用來依標識碼讀取、取代或刪除特定現有的 衝突。
使用 .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
衝突的標識符。
- 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)
用來依標識碼讀取、取代或刪除特定現有的 專案。
使用 .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
Item的識別碼。
- 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>