Share via


Azure Cosmos DB 컨테이너의 고유 키 정의

적용 대상: NoSQL

이 문서에서는 Azure Cosmos DB 컨테이너를 만들 때 고유 키를 정의하는 여러 다른 방법을 제공합니다. 현재, Azure Portal을 사용하거나 SDK 중 하나를 통해 이 작업을 수행할 수 있습니다.

Azure Portal 사용

  1. Azure Portal에 로그인합니다.

  2. 새 Azure Cosmos DB 계정을 만들거나 기존 계정을 선택합니다.

  3. Data Explorer 창을 열고 작업할 컨테이너를 선택합니다.

  4. 새 컨테이너를 클릭합니다.

  5. 컨테이너 추가 대화 상자에서 + 고유 키 추가를 클릭하여 고유 키 항목을 추가합니다.

  6. 고유 키 제약 조건의 경로 입력

  7. 필요한 경우 + 고유 키 추가를 클릭하여 더 많은 고유 키 항목을 추가합니다.

    Screenshot of unique key constraint entry on Azure portal

PowerShell 사용

고유한 키를 사용하여 컨테이너를 만들려면 고유한 키와 TTL을 사용하여 Azure Cosmos DB 컨테이너 만들기를 참조하세요.

.NET SDK 사용

.NET SDK v2를 사용하여 새 컨테이너를 만들 경우 UniqueKeyPolicy 개체를 사용하여 고유 키 제약 조건을 정의할 수 있습니다.

client.CreateDocumentCollectionAsync(UriFactory.CreateDatabaseUri("database"), new DocumentCollection
{
    Id = "container",
    PartitionKey = new PartitionKeyDefinition { Paths = new Collection<string>(new List<string> { "/myPartitionKey" }) },
    UniqueKeyPolicy = new UniqueKeyPolicy
    {
        UniqueKeys = new Collection<UniqueKey>(new List<UniqueKey>
        {
            new UniqueKey { Paths = new Collection<string>(new List<string> { "/firstName", "/lastName", "/emailAddress" }) },
            new UniqueKey { Paths = new Collection<string>(new List<string> { "/address/zipCode" }) }
        })
    }
});

Java SDK 사용

Java SDK를 사용하여 새 컨테이너를 만들 경우 UniqueKeyPolicy 개체를 사용하여 고유 키 제약 조건을 정의할 수 있습니다.

// create a new DocumentCollection object
DocumentCollection container = new DocumentCollection();
container.setId("container");

// create array of strings and populate them with the unique key paths
Collection<String> uniqueKey1Paths = new ArrayList<String>();
uniqueKey1Paths.add("/firstName");
uniqueKey1Paths.add("/lastName");
uniqueKey1Paths.add("/emailAddress");
Collection<String> uniqueKey2Paths = new ArrayList<String>();
uniqueKey2Paths.add("/address/zipCode");

// create UniqueKey objects and set their paths
UniqueKey uniqueKey1 = new UniqueKey();
UniqueKey uniqueKey2 = new UniqueKey();
uniqueKey1.setPaths(uniqueKey1Paths);
uniqueKey2.setPaths(uniqueKey2Paths);

// create a new UniqueKeyPolicy object and set its unique keys
UniqueKeyPolicy uniqueKeyPolicy = new UniqueKeyPolicy();
Collection<UniqueKey> uniqueKeys = new ArrayList<UniqueKey>();
uniqueKeys.add(uniqueKey1);
uniqueKeys.add(uniqueKey2);
uniqueKeyPolicy.setUniqueKeys(uniqueKeys);

// set the unique key policy
container.setUniqueKeyPolicy(uniqueKeyPolicy);

// create the container
client.createCollection(String.format("/dbs/%s", "database"), container, null);

Node.js SDK 사용

Node.js SDK를 사용하여 새 컨테이너를 만들 경우 UniqueKeyPolicy 개체를 사용하여 고유 키 제약 조건을 정의할 수 있습니다.

client.database('database').containers.create({
    id: 'container',
    uniqueKeyPolicy: {
        uniqueKeys: [
            { paths: ['/firstName', '/lastName', '/emailAddress'] },
            { paths: ['/address/zipCode'] }
        ]
    }
});

Python SDK 사용

Python SDK를 사용하여 새 컨테이너를 만들 때 매개 변수로 전달되는 사전의 일부로 고유 키 제약 조건을 지정할 수 있습니다.

client.CreateContainer('dbs/' + config['DATABASE'], {
    'id': 'container',
    'uniqueKeyPolicy': {
        'uniqueKeys': [
            {'paths': ['/firstName', '/lastName', '/emailAddress']},
            {'paths': ['/address/zipCode']}
        ]
    }
})

다음 단계