Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 Portal eller via någon av SDK:erna.
Använda Azure Portal
Logga in på Azure-portalen.
Skapa ett nytt Azure Cosmos DB-konto eller välj ett befintligt.
Öppna fönstret Datautforskaren och välj den container som du vill arbeta med.
Klicka på Ny container.
I dialogrutan Lägg till container klickar du på + Lägg till unik nyckel för att lägga till en unik nyckelpost.
Ange sökvägarna för den unika nyckelbegränsningen
Om det behövs lägger du till fler unika nyckelposter genom att klicka på + Lägg till unik nyckel
              
              
            
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']}
        ]
    }
})
Använda Go SDK
När du skapar en ny container med Go SDK kan en UniqueKeyPolicy användas för att definiera unika nyckelbegränsningar.
db, _ := c.NewDatabase("demodb")
pkDef := azcosmos.PartitionKeyDefinition{
	Paths: []string{"/state"},
	Kind:  azcosmos.PartitionKeyKindHash,
}
uniqueKeyPolicy := azcosmos.UniqueKeyPolicy{
	UniqueKeys: []azcosmos.UniqueKey{
		{
			Paths: []string{"/firstName", "/lastName", "/emailAddress"},
		},
	},
}
_, err = db.CreateContainer(context.Background(), azcosmos.ContainerProperties{
	ID:                     "demo_container",
	PartitionKeyDefinition: pkDef,
	UniqueKeyPolicy:        &uniqueKeyPolicy,
}, nil)
Nästa steg
- Läs mer om partitionering
 - Utforska hur indexering fungerar