Freigeben über


Definieren von eindeutigen Schlüsseln für einen Azure Cosmos DB-Container

GILT FÜR: NoSQL

In diesem Artikel sind die verschiedenen Methoden zum Definieren von eindeutigen Schlüsseln dargestellt, wenn ein Azure Cosmos DB-Container erstellt wird. Derzeit kann dieser Vorgangs über das Azure-Portal oder eines der SDKs ausgeführt werden.

Verwenden des Azure-Portals

  1. Melden Sie sich beim Azure-Portal an.

  2. Erstellen Sie ein neues Azure Cosmos DB-Konto, oder wählen Sie ein bereits vorhandenes Konto aus.

  3. Öffnen Sie den Bereich Daten-Explorer, und wählen Sie den gewünschten Container aus.

  4. Klicken Sie auf Neuer Container.

  5. Klicken Sie im Dialogfeld Container hinzufügen auf + Eindeutigen Schlüssel hinzufügen, um einen eindeutigen Schlüsseleintrag hinzuzufügen.

  6. Geben Sie die Pfade der Einschränkung für eindeutige Schlüssel ein.

  7. Fügen Sie bei Bedarf weitere eindeutige Einträge hinzu, indem Sie auf + Eindeutigen Schlüssel hinzufügen klicken.

    Screenshot von Einschränkungseinträgen für eindeutige Schlüssel im Azure-Portal

Verwenden von PowerShell

Informationen zum Erstellen eines Containers mit eindeutigen Schlüsseln finden Sie unter Erstellen eines Azure Cosmos DB-Containers mit einer Richtlinie für einen eindeutigen Schlüssel und mit einer Gültigkeitsdauer.

Verwenden des .NET SDK

Wenn ein neuer Container mit dem .NET SDK v2 erstellt wird, kann ein UniqueKeyPolicy-Objekt verwendet werden, um Einschränkungen für eindeutige Schlüssel zu definieren.

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

Verwenden des Java SDK

Wenn ein neuer Container mit dem Java SDK erstellt wird, kann ein UniqueKeyPolicy-Objekt verwendet werden, um Einschränkungen für eindeutige Schlüssel zu definieren.

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

Verwenden des Node.js SDK

Wenn ein neuer Container mit dem Node.js SDK erstellt wird, kann ein UniqueKeyPolicy-Objekt verwendet werden, um Einschränkungen für eindeutige Schlüssel zu definieren.

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

Verwenden des Python SDK

Wenn ein neuer Container mit dem Python SDK erstellt wird, können Einschränkungen für eindeutige Schlüssel als Teil des Verzeichnisses angegeben werden, das als Parameter übergeben wird.

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

Nächste Schritte