다음을 통해 공유


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. 필요한 경우 + 고유 키 추가를 클릭하여 더 많은 고유 키 항목을 추가합니다.

    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']}
        ]
    }
})

다음 단계