Bagikan melalui


Menentukan kunci unik untuk kontainer Azure Cosmos DB

BERLAKU UNTUK: NoSQL

Artikel ini menyajikan berbagai cara untuk menentukan kunci unik saat membuat kontainer Azure Cosmos DB. Saat ini dimungkinkan untuk melakukan operasi ini baik dengan portal Microsoft Azure atau melalui salah satu SDK.

Menggunakan portal Azure

  1. Masuk ke portal Azure.

  2. Buat akun Azure Cosmos DB baru atau pilih akun yang sudah ada.

  3. Masuk ke panel Data Explorer, lalu pilih kontainer yang ingin Anda kerjakan.

  4. Klik Kontainer Baru.

  5. Dalam dialog Tambahkan Kontainer, klik + Tambahkan kunci unik untuk menambahkan entri kunci unik.

  6. Masukkan jalur batasan kunci unik

  7. Bila perlu, tambahkan lebih banyak entri kunci unik dengan mengklik + Tambahkan kunci unik

    Cuplikan layar entri batasan kunci unik di portal Microsoft Azure

Menggunakan PowerShell

Untuk membuat kontainer dengan kunci unik, lihat Membuat kontainer Azure Cosmos DB dengan kunci unik dan TTL

Menggunakan .NET SDK

Saat membuat kontainer baru menggunakan .NET SDK v2, objek UniqueKeyPolicy dapat digunakan untuk menentukan batasan kunci unik.

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" }) }
        })
    }
});

Menggunakan Java SDK

Saat membuat kontainer baru menggunakan Java SDK a UniqueKeyPolicy objek dapat digunakan untuk menentukan batasan kunci yang unik.

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

Menggunakan Node.js SDK

Saat membuat kontainer baru menggunakan Node.js SDK, a UniqueKeyPolicy objek dapat digunakan untuk menentukan batasan kunci yang unik.

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

Menggunakan Python SDK

Saat membuat kontainer baru menggunakan Python SDK, batasan kunci unik dapat ditentukan sebagai bagian dari kamus yang disahkan sebagai parameter.

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

Langkah berikutnya