Container class

ID による特定の既存のコンテナーの読み取り、置換、または削除を行う操作。

新しいコンテナーを作成し、すべてのコンテナーの読み取り/クエリを実行する方法については、「コンテナーの」を参照してください。.containersを使用します。

注: これらすべての操作は、固定予算に対して呼び出しを行います。 これらの呼び出しがアプリケーションと共にサブリニアにスケーリングされるようにシステムを設計する必要があります。 たとえば、コンテナーが存在することを確認するために、すべての container(id).read() 呼び出しの前に item.read() を呼び出さないでください。これは、アプリケーションの起動時に 1 回行います。

プロパティ

conflicts

特定のコンテナーの競合の読み取りとクエリの操作。

特定の競合を読み取ったり削除したりするには、.conflict(id)を使用します。

database
id
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: {},
});
scripts

ストアド プロシージャ、トリガー、およびユーザー定義関数のすべての操作

url

リソースへの参照 URL を返します。 アクセス許可のリンクに使用されます。

メソッド

conflict(string, PartitionKey)

既存の特定の Conflict を 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();
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();
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");
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();
getPartitionKeyDefinition()

コレクションを読み取ってキャッシュを調べることで、最初にパーティション キー定義を取得します。

getQueryPlan(string | SqlQuerySpec)
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();
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 });
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();
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();
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();
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);
semanticRerank(string, string[], SemanticRerankOptions)

Cosmos DB推論サービスを通じて、セマンティックリランクを用いて文書のリストをリランクできます。 この方法はセマンティック・リランカーを用いて、与えられた文書を文脈との関連性に基づいてスコアリングし、順序付けを変えます。

セマンティックなリランク要求は、メインのCosmos DBクライアントとは別のHTTPパイプラインを使用し、デフォルトのSDK再試行ポリシーは使用しません。

この機能を使用するには、次の操作を行う必要があります。

  1. aadCredentialsでAAD認証を設定してくださいCosmosClientOptions
  2. 推論端点を の enablePreviewFeatures.semanticRerank.inferenceEndpoint で提供します。 CosmosClientOptions

クエリ結果の意味的再ランキング

import { DefaultAzureCredential } from "@azure/identity";
import { CosmosClient } from "@azure/cosmos";

const endpoint = "https://your-account.documents.azure.com";
const aadCredentials = new DefaultAzureCredential();
const client = new CosmosClient({
  endpoint,
  aadCredentials,
  enablePreviewFeatures: {
    semanticRerank: {
      inferenceEndpoint: "https://your-account.<region>.dbinference.azure.com",
    },
  },
});

const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });

const queryResults = ["doc1 JSON", "doc2 JSON", "doc3 JSON"];
const result = await container.semanticRerank(
  "most economical with multiple adjustments",
  queryResults,
  { return_documents: true, top_k: 10, sort: true },
);
// Access the top-ranked document
if (result.rerankScores.length > 0) {
  const topResult = result.rerankScores[0];
  const topScore = topResult.score;
  const topDocument = topResult.document;
  if (topDocument) {
    console.log("Top-ranked document:", topDocument);
  }
  console.log("Top score:", topScore);
}

プロパティの詳細

conflicts

特定のコンテナーの競合の読み取りとクエリの操作。

特定の競合を読み取ったり削除したりするには、.conflict(id)を使用します。

Conflicts conflicts

プロパティ値

database

database: 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

ストアド プロシージャ、トリガー、およびユーザー定義関数のすべての操作

Scripts scripts

プロパティ値

url

リソースへの参照 URL を返します。 アクセス許可のリンクに使用されます。

string url

プロパティ値

string

メソッドの詳細

conflict(string, PartitionKey)

既存の特定の Conflict を 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

返品

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

返品

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>>

返品

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

Item パーティション キーの値

返品

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

返品

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>

パラメーター

options
RequestOptions

返品

semanticRerank(string, string[], SemanticRerankOptions)

注意

この API はベータ版で、開発者向けにプレビューとして提供されており、寄せられたフィードバックに基づいて変更される場合があります。 この API は運用環境で使用しないでください。

Cosmos DB推論サービスを通じて、セマンティックリランクを用いて文書のリストをリランクできます。 この方法はセマンティック・リランカーを用いて、与えられた文書を文脈との関連性に基づいてスコアリングし、順序付けを変えます。

セマンティックなリランク要求は、メインのCosmos DBクライアントとは別のHTTPパイプラインを使用し、デフォルトのSDK再試行ポリシーは使用しません。

この機能を使用するには、次の操作を行う必要があります。

  1. aadCredentialsでAAD認証を設定してくださいCosmosClientOptions
  2. 推論端点を の enablePreviewFeatures.semanticRerank.inferenceEndpoint で提供します。 CosmosClientOptions

クエリ結果の意味的再ランキング

import { DefaultAzureCredential } from "@azure/identity";
import { CosmosClient } from "@azure/cosmos";

const endpoint = "https://your-account.documents.azure.com";
const aadCredentials = new DefaultAzureCredential();
const client = new CosmosClient({
  endpoint,
  aadCredentials,
  enablePreviewFeatures: {
    semanticRerank: {
      inferenceEndpoint: "https://your-account.<region>.dbinference.azure.com",
    },
  },
});

const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });

const queryResults = ["doc1 JSON", "doc2 JSON", "doc3 JSON"];
const result = await container.semanticRerank(
  "most economical with multiple adjustments",
  queryResults,
  { return_documents: true, top_k: 10, sort: true },
);
// Access the top-ranked document
if (result.rerankScores.length > 0) {
  const topResult = result.rerankScores[0];
  const topScore = topResult.score;
  const topDocument = topResult.document;
  if (topDocument) {
    console.log("Top-ranked document:", topDocument);
  }
  console.log("Top score:", topScore);
}
function semanticRerank(rerankContext: string, documents: string[], options?: SemanticRerankOptions): Promise<SemanticRerankResult>

パラメーター

rerankContext

string

文書のランク付けに使うコンテキスト(例:クエリ文字列)について。

documents

string[]

リランクされる文書のリスト(JSON文字列として)です。

options
SemanticRerankOptions

リランク申請のためのオプションの設定辞典。 既知のサービスオプション:

  • return_documents (ブール)— 回答にランク付けされた文書を含めること。
  • top_k (番号) — 返送すべき上位文書の最大数。
  • batch_size (番号)— 文書処理のためのバッチサイズ。
  • sort (ブール) — 結果を関連度スコアで降順に並べ替えます。
  • document_type ("string" | "json") — 再評価される文書の種類。
  • target_paths (文字列) — カンマ区切られたJSONパス(document_typeが "json"の場合)。
  • abortSignal (中止信号)— 要請をキャンセルする信号を。 追加の鍵は推論サービス as-is 転送されます。

返品

再ランキング結果には、スコアされた文書、レイテンシ、トークン使用が含まれます。