Aracılığıyla paylaş


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

UYGULANANLAR: 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.

Kapsayıcıyı adlandırırken bazı hızlı kurallar şunlardır:

  • Kapsayıcı adlarını 3 ile 63 karakter uzunluğunda tutma
  • Kapsayıcı adları yalnızca küçük harf, sayı veya tire (-) karakteri içerebilir.
  • Kapsayıcı adları küçük harf veya sayı ile başlamalıdır.

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 - Yoksa bir kapsayıcı oluşturur. Varsa kapsayıcı döndür.
  • create - Kapsayıcı oluşturur. Varsa, statusCode hata kodunu 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 doğrudan Container nesnesinden veya CosmosClient veya Database nesnelerinden zincirlenmiş olarak 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ı silme

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.