다음을 통해 공유


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

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

개체별 액세스:

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

컨테이너 삭제

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

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

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

다음 단계

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