Compartir a través de


Container class

Operaciones para leer, reemplazar o eliminar un contenedor específico existente por identificador.

Consulte contenedores para crear nuevos contenedores y leer y consultar todos los contenedores; use .containers.

Nota: todas estas operaciones realizan llamadas con un presupuesto fijo. Debe diseñar el sistema de forma que estas llamadas se escalen de forma sublineal con la aplicación. Por ejemplo, no llame a container(id).read() antes de cada llamada item.read() única, para asegurarse de que el contenedor existe; Haga esto una vez en el inicio de la aplicación.

Propiedades

conflicts

Operaciones para leer y consultar conflictos para el contenedor especificado.

Para leer o eliminar un conflicto específico, use .conflict(id).

database
id
items

Operaciones para crear nuevos elementos y leer o consultar todos los elementos

Para leer, reemplazar o eliminar un elemento existente, use .item(id).

de ejemplo de

Crear un nuevo elemento

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

Todas las operaciones para procedimientos almacenados, desencadenadores y funciones definidas por el usuario

url

Devuelve una dirección URL de referencia al recurso. Se usa para vincular en Permisos.

Métodos

conflict(string, PartitionKey)

Se usa para leer, reemplazar o eliminar un conflicto específico existente por identificador.

Use .conflicts para crear nuevos conflictos o consultar o leer todos los conflictos.

de ejemplo de

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)

Eliminación del contenedor

de ejemplo de

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)

Eliminar todos los documentos pertenecen al contenedor para el valor de clave de partición proporcionado

de ejemplo de

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

de ejemplo de

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

Obtiene primero la definición de clave de partición examinando la memoria caché; de lo contrario, lee la colección.

getQueryPlan(string | SqlQuerySpec)
initializeEncryption()

Calienta las cachés relacionadas con el cifrado para el contenedor.

de ejemplo de

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)

Se usa para leer, reemplazar o eliminar un elemento de específico existente por identificador.

Use .items para crear nuevos elementos o consultar o leer todos los elementos.

de ejemplo de

Reemplazo de un elemento

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)

Leer la definición del contenedor

de ejemplo de

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)

Obtiene la oferta en el contenedor. Si no existe ninguno, devuelve una offerResponse con undefined.

de ejemplo de

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)

Obtiene los intervalos de claves de partición para el contenedor.

de ejemplo de

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)

Reemplazar la definición del contenedor

de ejemplo de

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

Detalles de las propiedades

conflicts

Operaciones para leer y consultar conflictos para el contenedor especificado.

Para leer o eliminar un conflicto específico, use .conflict(id).

Conflicts conflicts

Valor de propiedad

database

database: Database

Valor de propiedad

id

id: string

Valor de propiedad

string

items

Operaciones para crear nuevos elementos y leer o consultar todos los elementos

Para leer, reemplazar o eliminar un elemento existente, use .item(id).

de ejemplo de

Crear un nuevo elemento

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

Valor de propiedad

scripts

Todas las operaciones para procedimientos almacenados, desencadenadores y funciones definidas por el usuario

Scripts scripts

Valor de propiedad

url

Devuelve una dirección URL de referencia al recurso. Se usa para vincular en Permisos.

string url

Valor de propiedad

string

Detalles del método

conflict(string, PartitionKey)

Se usa para leer, reemplazar o eliminar un conflicto específico existente por identificador.

Use .conflicts para crear nuevos conflictos o consultar o leer todos los conflictos.

de ejemplo de

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

Parámetros

id

string

Identificador del conflicto de.

partitionKey
PartitionKey

Devoluciones

delete(RequestOptions)

Eliminación del contenedor

de ejemplo de

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>

Parámetros

options
RequestOptions

Devoluciones

deleteAllItemsForPartitionKey(PartitionKey, RequestOptions)

Eliminar todos los documentos pertenecen al contenedor para el valor de clave de partición proporcionado

de ejemplo de

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>

Parámetros

partitionKey
PartitionKey

Valor de clave de partición de los elementos que se van a eliminar

options
RequestOptions

Devoluciones

getFeedRanges()

de ejemplo de

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

Devoluciones

Promise<readonly FeedRange[]>

todos los intervalos de fuente para los que se puede capturar el suministro de cambios.

getPartitionKeyDefinition()

Advertencia

Esta API ya está en desuso.

This method has been renamed to readPartitionKeyDefinition.

Obtiene primero la definición de clave de partición examinando la memoria caché; de lo contrario, lee la colección.

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

Devoluciones

getQueryPlan(string | SqlQuerySpec)

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

Parámetros

query

string | SqlQuerySpec

Devoluciones

Promise<Response<PartitionedQueryExecutionInfo>>

initializeEncryption()

Calienta las cachés relacionadas con el cifrado para el contenedor.

de ejemplo de

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>

Devoluciones

Promise<void>

item(string, PartitionKey)

Se usa para leer, reemplazar o eliminar un elemento de específico existente por identificador.

Use .items para crear nuevos elementos o consultar o leer todos los elementos.

de ejemplo de

Reemplazo de un elemento

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

Parámetros

id

string

Identificador del elemento de .

partitionKeyValue
PartitionKey

Valor de la clave de partición elemento de

Devoluciones

read(RequestOptions)

Leer la definición del contenedor

de ejemplo de

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>

Parámetros

options
RequestOptions

Devoluciones

readOffer(RequestOptions)

Obtiene la oferta en el contenedor. Si no existe ninguno, devuelve una offerResponse con undefined.

de ejemplo de

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>

Parámetros

options
RequestOptions

Devoluciones

Promise<OfferResponse>

readPartitionKeyRanges(FeedOptions)

Obtiene los intervalos de claves de partición para el contenedor.

de ejemplo de

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>

Parámetros

feedOptions
FeedOptions

Opciones para la solicitud.

Devoluciones

QueryIterator<PartitionKeyRange>

Iterador de intervalos de claves de partición.

replace(ContainerDefinition, RequestOptions)

Reemplazar la definición del contenedor

de ejemplo de

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>

Parámetros

options
RequestOptions

Devoluciones