Aracılığıyla paylaş


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

GEÇERLİ OLDUĞU: NoSQL

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 mevcut değilse bir kapsayıcı oluşturur. Varsa kapsayıcıyı döndür.
  • create - Kapsayıcı oluşturur. Eğer mevcutsa, hata durumu kodunu döndürün.
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

Bir kapsayıcıya, ya doğrudan Container nesnesinden ya da CosmosClient veya Database nesnelerinden zincirlenerek erişilebilir.

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:

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