Sdílet prostřednictvím


Definování jedinečných klíčů pro kontejner Azure Cosmos DB

PLATÍ PRO: NoSQL

Tento článek představuje různé způsoby definování jedinečných klíčů při vytváření kontejneru Azure Cosmos DB. V současné době je možné tuto operaci provést buď pomocí webu Azure Portal, nebo prostřednictvím jedné ze sad SDK.

Použití portálu Azure Portal

  1. Přihlaste se k portálu Azure.

  2. Vytvořte nový účet služby Azure Cosmos DB nebo vyberte existující účet .

  3. Otevřete podokno Průzkumník dat a vyberte kontejner, na který chcete pracovat.

  4. Klikněte na Nový kontejner.

  5. V dialogovém okně Přidat kontejner kliknutím na + Přidat jedinečný klíč přidejte jedinečnou položku klíče.

  6. Zadejte cesty omezení jedinečného klíče.

  7. V případě potřeby přidejte další jedinečné položky klíče kliknutím na + Přidat jedinečný klíč.

    Snímek obrazovky s položkou omezení jedinečného klíče na webu Azure Portal

Použití PowerShellu

Pokud chcete vytvořit kontejner s jedinečnými klíči, podívejte se na to, že vytvoříte kontejner Azure Cosmos DB s jedinečným klíčem a TTL.

Použití sady .NET SDK

Při vytváření nového kontejneru pomocí sady .NET SDK v2UniqueKeyPolicy lze objekt použít k definování jedinečných omezení klíče.

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

Použití sady Java SDK

Při vytváření nového kontejneru pomocí sady Java SDKUniqueKeyPolicy lze objekt použít k definování jedinečných omezení klíče.

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

Použití sady Node.js SDK

Při vytváření nového kontejneru pomocí sady Node.js SDKUniqueKeyPolicy lze objekt použít k definování jedinečných omezení klíče.

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

Použití sady Python SDK

Při vytváření nového kontejneru pomocí sady Python SDK je možné zadat jedinečná omezení klíče jako součást slovníku předaného jako parametr.

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

Další kroky