다음을 통해 공유


JavaScript를 사용하여 Azure Cosmos DB for NoSQL에서 컨테이너 만들기

적용 대상: NoSQL

Azure Cosmos DB의 컨테이너는 항목 세트를 저장합니다. 항목을 만들거나 쿼리하거나 관리하려면 먼저 컨테이너를 만들어야 합니다.

컨테이너 이름 지정

Azure Cosmos DB에서 컨테이너는 관계형 데이터베이스의 테이블과 유사합니다. 컨테이너를 만들 때 컨테이너 이름은 컨테이너 리소스 및 모든 자식 항목에 액세스하는 데 사용되는 URI의 세그먼트를 형성합니다.

만들어지면 컨테이너의 URI는 다음과 같은 형식입니다.

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

컨테이너 만들기

Database 개체를 가져온 다음, 컨테이너를 만듭니다.

  • createIfNotExists - 컨테이너가 없으면 만듭니다. 있는 경우 컨테이너를 반환합니다.
  • create - 컨테이너를 만듭니다. 있는 경우 오류 statusCode를 반환합니다.
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는 HTTP 응답 코드입니다. 성공적인 응답은 200-299 범위에 있습니다.

컨테이너 액세스

컨테이너는 Container 개체에서 직접 액세스하거나 CosmosClient 또는 Database 개체에서 연결됩니다.

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

개체별 액세스:

  • Containers(복수): 컨테이너를 만들거나 쿼리합니다.
  • Container(단수): 컨테이너를 삭제하고 항목 작업을 수행합니다.

컨테이너 삭제

Container 개체를 가져오면 Container 개체를 사용하여 컨테이너를 삭제할 수 있습니다.

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

statusCode는 HTTP 응답 코드입니다. 성공적인 응답은 200-299 범위에 있습니다.

다음 단계

이제 컨테이너를 만들았으므로 다음 가이드를 사용하여 항목을 만듭니다.