Container class

Operace čtení, nahrazení nebo odstranění konkrétního existujícího kontejneru podle ID

Viz Kontejnery pro vytváření nových kontejnerů a čtení a dotazování všech kontejnerů; použít .containers.

Poznámka: Všechny tyto operace vyžadují pevné rozpočty. Systém byste měli navrhnout tak, aby tato volání škálovat podlineárně s vaší aplikací. Například nevolejte container(id).read() před každým voláním item.read(), aby se zajistilo, že kontejner existuje; proveďte to jednou při spuštění aplikace.

Vlastnosti

conflicts

Operace pro čtení a dotazování konfliktů pro daný kontejner

Ke čtení nebo odstranění určitého konfliktu použijte .conflict(id).

database
id
items

Operace pro vytváření nových položek a čtení a dotazování všech položek

Pro čtení, nahrazení nebo odstranění existující položky použijte .item(id).

příklad

Vytvoření nové položky

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

Všechny operace pro uložené procedury, triggery a uživatelem definované funkce

url

Vrátí adresu URL odkazu na prostředek. Používá se pro propojení v oprávněních.

Metody

conflict(string, PartitionKey)

Používá se ke čtení, nahrazení nebo odstranění konkrétního existujícího Konflikt podle ID.

Pomocí .conflicts můžete vytvářet nové konflikty nebo dotazovat nebo číst všechny konflikty.

příklad

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)

Odstranění kontejneru

příklad

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)

Odstranění všech dokumentů patřících do kontejneru pro zadanou hodnotu klíče oddílu

příklad

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

příklad

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

Získá nejprve definici klíče oddílu tak, že se podívá do mezipaměti jinak čtením kolekce.

getQueryPlan(string | SqlQuerySpec)
initializeEncryption()

Zahřívá mezipaměti související se šifrováním pro kontejner.

příklad

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)

Slouží ke čtení, nahrazení nebo odstranění konkrétní položky podle ID.

Pomocí .items můžete vytvářet nové položky nebo dotazovat nebo číst všechny položky.

příklad

Nahrazení položky

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)

Čtení definice kontejneru

příklad

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)

Získá nabídku v kontejneru. Pokud žádný neexistuje, vrátí offerResponse s nedefinovaným.

příklad

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)

Získá rozsahy klíčů oddílů pro kontejner.

příklad

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)

Nahrazení definice kontejneru

příklad

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)

Přeřazte seznam dokumentů pomocí sémantického přeřazení pomocí Cosmos DB Inference Service. Tato metoda využívá sémantický reranker k hodnocení a přeuspořádání poskytnutých dokumentů podle jejich relevance pro daný kontext.

Požadavky na sémantické přehodnocení používají samostatný HTTP pipeline od hlavního klienta Cosmos DB a nepoužívají výchozí politiky opakovaného pokusu SDK.

Pokud chcete tuto funkci použít, musíte:

  1. Konfigurujte AAD autentizaci pomocí aadCredentials in CosmosClientOptions
  2. Uveďte inferenční konec přes enablePreviewFeatures.semanticRerank.inferenceEndpoint v CosmosClientOptions

příklad

Sémantické přeřazení výsledků dotazů

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);
}

Podrobnosti vlastnosti

conflicts

Operace pro čtení a dotazování konfliktů pro daný kontejner

Ke čtení nebo odstranění určitého konfliktu použijte .conflict(id).

Conflicts conflicts

Hodnota vlastnosti

database

database: Database

Hodnota vlastnosti

id

id: string

Hodnota vlastnosti

string

items

Operace pro vytváření nových položek a čtení a dotazování všech položek

Pro čtení, nahrazení nebo odstranění existující položky použijte .item(id).

příklad

Vytvoření nové položky

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

Hodnota vlastnosti

scripts

Všechny operace pro uložené procedury, triggery a uživatelem definované funkce

Scripts scripts

Hodnota vlastnosti

url

Vrátí adresu URL odkazu na prostředek. Používá se pro propojení v oprávněních.

string url

Hodnota vlastnosti

string

Podrobnosti metody

conflict(string, PartitionKey)

Používá se ke čtení, nahrazení nebo odstranění konkrétního existujícího Konflikt podle ID.

Pomocí .conflicts můžete vytvářet nové konflikty nebo dotazovat nebo číst všechny konflikty.

příklad

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

Parametry

id

string

ID konfliktu.

partitionKey
PartitionKey

Návraty

delete(RequestOptions)

Odstranění kontejneru

příklad

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>

Parametry

options
RequestOptions

Návraty

deleteAllItemsForPartitionKey(PartitionKey, RequestOptions)

Odstranění všech dokumentů patřících do kontejneru pro zadanou hodnotu klíče oddílu

příklad

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>

Parametry

partitionKey
PartitionKey

Hodnota klíče oddílu položek, které se mají odstranit

options
RequestOptions

Návraty

getFeedRanges()

příklad

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

Návraty

Promise<readonly FeedRange[]>

všechny oblasti informačního kanálu, pro které je možné načíst kanál změn.

getPartitionKeyDefinition()

Upozornění

Toto rozhraní API je teď zastaralé.

This method has been renamed to readPartitionKeyDefinition.

Získá nejprve definici klíče oddílu tak, že se podívá do mezipaměti jinak čtením kolekce.

function getPartitionKeyDefinition(): Promise<ResourceResponse<PartitionKeyDefinition>>

Návraty

getQueryPlan(string | SqlQuerySpec)

function getQueryPlan(query: string | SqlQuerySpec): Promise<Response<PartitionedQueryExecutionInfo>>

Parametry

query

string | SqlQuerySpec

Návraty

Promise<Response<PartitionedQueryExecutionInfo>>

initializeEncryption()

Zahřívá mezipaměti související se šifrováním pro kontejner.

příklad

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>

Návraty

Promise<void>

item(string, PartitionKey)

Slouží ke čtení, nahrazení nebo odstranění konkrétní položky podle ID.

Pomocí .items můžete vytvářet nové položky nebo dotazovat nebo číst všechny položky.

příklad

Nahrazení položky

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

Parametry

id

string

ID položky.

partitionKeyValue
PartitionKey

Hodnota klíče oddílu Item

Návraty

read(RequestOptions)

Čtení definice kontejneru

příklad

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>

Parametry

options
RequestOptions

Návraty

readOffer(RequestOptions)

Získá nabídku v kontejneru. Pokud žádný neexistuje, vrátí offerResponse s nedefinovaným.

příklad

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>

Parametry

options
RequestOptions

Návraty

Promise<OfferResponse>

readPartitionKeyRanges(FeedOptions)

Získá rozsahy klíčů oddílů pro kontejner.

příklad

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>

Parametry

feedOptions
FeedOptions

Možnosti pro požadavek.

Návraty

QueryIterator<PartitionKeyRange>

Iterátor rozsahů klíčů oddílů.

replace(ContainerDefinition, RequestOptions)

Nahrazení definice kontejneru

příklad

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>

Parametry

options
RequestOptions

Návraty

semanticRerank(string, string[], SemanticRerankOptions)

Poznámka

Tento rozhraní API je v beta verzi. Poskytuje se jako verze Preview pro vývojáře a může se změnit na základě zpětné vazby, kterou dostaneme. Nepoužívejte toto rozhraní API v produkčním prostředí.

Přeřazte seznam dokumentů pomocí sémantického přeřazení pomocí Cosmos DB Inference Service. Tato metoda využívá sémantický reranker k hodnocení a přeuspořádání poskytnutých dokumentů podle jejich relevance pro daný kontext.

Požadavky na sémantické přehodnocení používají samostatný HTTP pipeline od hlavního klienta Cosmos DB a nepoužívají výchozí politiky opakovaného pokusu SDK.

Pokud chcete tuto funkci použít, musíte:

  1. Konfigurujte AAD autentizaci pomocí aadCredentials in CosmosClientOptions
  2. Uveďte inferenční konec přes enablePreviewFeatures.semanticRerank.inferenceEndpoint v CosmosClientOptions

příklad

Sémantické přeřazení výsledků dotazů

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>

Parametry

rerankContext

string

Kontext (např. dotazovací řetězec) pro přehodnocení dokumentů.

documents

string[]

Seznam dokumentů (jako JSON řetězce), které mají být přeřazeny.

options
SemanticRerankOptions

Volitelný slovník nastavení pro žádost o přeřazení. Známé možnosti služby:

  • return_documents (Boolean) — zahrňte do odpovědi přeřazené dokumenty.
  • top_k (číslo) — maximální počet nejlépe hodnocených dokumentů k vrácení.
  • batch_size (číslo) — velikost dávky pro zpracování dokumentů.
  • sort (Boolean) — Seřaďte výsledky podle relevance skóre sestupně.
  • document_type ("string" | "json") — typ dokumentů, které jsou přeřazeny.
  • target_paths(string) — JSON cesty oddělené čárkami (když document_type je )."json"
  • abortSignal (Signál zrušit) — signál ke zrušení žádosti. Jakékoli další klíče jsou přeposílány as-is inferenční službě.

Návraty

Výsledky přeřazení zahrnují hodnotené dokumenty, latenci a využití tokenů.