JavaScript kullanarak NoSQL için Azure Cosmos DB'de kapsayıcı oluşturma

Azure Cosmos DB'deki kapsayıcılar öğe kümelerini depolar. Öğeleri oluşturabilmeniz, sorgulayabilmeniz veya yönetebilmeniz için önce bir kapsayıcı oluşturmanız gerekir.

Kapsayıcıyı adlandırma

Azure Cosmos DB'de kapsayıcı, ilişkisel veritabanındaki tabloya benzer. Kapsayıcı oluşturduğunuzda, kapsayıcı adı kapsayıcı kaynağına ve alt öğelere erişmek için kullanılan URI'nin bir kesimini oluşturur.

Oluşturulduktan sonra kapsayıcının URI'si şu biçimdedir:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>

Kapsayıcı oluşturma

Veritabanı nesnesi alın ve bir Kapsayıcı oluşturun:

  • createIfNotExists - Eğer yoksa bir kapsayıcı oluşturur. Varsa kapsayıcı döndür.
  • create - Kapsayıcı oluşturur. Eğer varsa, hata kodu olarak statusCode döndür.
const containerName = 'myContainer';

// Possible results:
// Create then return container
// Return existing container
// Return error statusCode
const { statusCode, container } = await database.containers.createIfNotExists({ id: containerName });

// Possible results: 
// Create then return container
// Return error statusCode, reason includes container already exists
const { statusCode, container} = await database.containers.create({ id: containerName });

statusCode bir HTTP yanıt kodudur. Başarılı bir yanıt 200-299 aralığındadır.

Kapsayıcıya erişme

Kapsayıcıya Container nesnesinden doğrudan veya CosmosClient ya da Database nesnelerinden bağlantı kurularak erişilir.

const databaseName = 'myDb';
const containerName = 'myContainer';

// Chained - assumes database and container already exis
const { container, statusCode } = await client.database(databaseName).container(containerName);

// Direct - assumes database and container already exist
const { database, statusCode } = await client.database(databaseName);
if(statusCode < 400){
    const { container, statusCode } = await database.container(containerName);
}

// Query - assumes database and container already exist
const { resources } = await client.database(databaseName).containers
.query({
    query: `SELECT * FROM root r where r.id =@containerId`,
    parameters: [
    {
        name: '@containerId',
        value: containerName
    }
    ]
})
.fetchAll();

Nesneye göre erişim:

  • Kapsayıcılar (çoğul): Kapsayıcı oluşturma veya sorgulama.
  • Kapsayıcı (tekil): Kapsayıcıyı silin, öğelerle çalışın.

Kapsayıcıyı sil

Container nesnesini aldıktan sonra Kapsayıcı nesnesini kullanarak kapsayıcıyı silebilirsiniz:

const { statusCode } = await container.delete();

statusCode bir HTTP yanıt kodudur. Başarılı bir yanıt 200-299 aralığındadır.

Sonraki Adımlar

Artık bir kapsayıcı oluşturduğunuza göre, öğeleri oluşturmak için sonraki kılavuzu kullanın.