Dela via


Definiera unika nycklar för en Azure Cosmos DB-container

GÄLLER FÖR: NoSQL

Den här artikeln beskriver de olika sätten att definiera unika nycklar när du skapar en Azure Cosmos DB-container. Det är för närvarande möjligt att utföra den här åtgärden antingen med hjälp av Azure-portalen eller via någon av SDK:erna.

Använda Azure Portal

  1. Logga in på Azure-portalen.

  2. Skapa ett nytt Azure Cosmos DB-konto eller välj ett befintligt.

  3. Öppna fönstret Datautforskaren och välj den container som du vill arbeta med.

  4. Klicka på Ny container.

  5. I dialogrutan Lägg till container klickar du på + Lägg till unik nyckel för att lägga till en unik nyckelpost.

  6. Ange sökvägarna för den unika nyckelbegränsningen

  7. Om det behövs lägger du till fler unika nyckelposter genom att klicka på + Lägg till unik nyckel

    Skärmbild av unik nyckelbegränsningspost i Azure-portalen

Använda PowerShell

Information om hur du skapar en container med unika nycklar finns i Skapa en Azure Cosmos DB-container med unik nyckel och TTL

Använda .NET SDK

När du skapar en ny container med .NET SDK v2 kan ett UniqueKeyPolicy objekt användas för att definiera unika nyckelbegränsningar.

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

Använda Java SDK

När du skapar en ny container med Java SDK kan ett UniqueKeyPolicy objekt användas för att definiera unika nyckelbegränsningar.

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

Använda Node.js SDK

När du skapar en ny container med hjälp av Node.js SDK kan ett UniqueKeyPolicy objekt användas för att definiera unika nyckelbegränsningar.

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

Använda Python SDK

När du skapar en ny container med Python SDK kan du ange unika nyckelbegränsningar som en del av ordlistan som skickas som parameter.

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

Nästa steg