다음을 통해 공유


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>

데이터베이스 만들기

CosmosClient를 만든 후에는 클라이언트를 사용하여 두 개의 서로 다른 호출에서 데이터베이스를 만듭니다.

  • createIfNotExists - 데이터베이스가 없으면 만듭니다. 있는 경우 데이터베이스를 반환합니다.
  • create - 데이터베이스를 만듭니다. 있는 경우 오류 statusCode를 반환합니다.
const databaseName = 'myDb';

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

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

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

데이터베이스 액세스

데이터베이스는 직접 또는 CosmosClient의 쿼리 결과를 통해 Database 개체에서 액세스됩니다.

const databaseName = 'myDb';

// Direct - assumes database already exists
const { database, statusCode } = await client.database(databaseName);

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

개체별 액세스:

  • Databases(복수): 새 데이터베이스를 만들거나 모든 데이터베이스를 쿼리/읽는 데 사용됩니다.
  • Database(단수): ID로 기존 데이터베이스를 읽거나 업데이트하거나 삭제하거나 해당 데이터베이스에 속한 컨테이너에 액세스하는 데 사용됩니다.

데이터베이스 삭제

Database 개체를 가져오는 경우 Database 개체를 사용하여 데이터베이스를 삭제할 수 있습니다.

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

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

다음 단계

이제 데이터베이스를 만들었으므로 다음 가이드를 사용하여 컨테이너를 만듭니다.