Unieke sleutels definiëren voor een Azure Cosmos DB-container
VAN TOEPASSING OP: NoSQL
Dit artikel bevat de verschillende manieren om unieke sleutels te definiëren bij het maken van een Azure Cosmos DB-container. Het is momenteel mogelijk om deze bewerking uit te voeren via Azure Portal of via een van de SDK's.
De Azure-portal gebruiken
Meld u aan bij het Azure-portaal.
Maak een nieuw Azure Cosmos DB-account of selecteer een bestaand account.
Open het deelvenster Data Explorer en selecteer de container waaraan u wilt werken.
Klik op Nieuwe container.
Klik in het dialoogvenster Container toevoegen op + Unieke sleutel toevoegen om een unieke sleutelvermelding toe te voegen.
Voer de pad(en) van de unieke sleutelbeperking in
Voeg indien nodig meer unieke sleutelvermeldingen toe door te klikken op + Unieke sleutel toevoegen
PowerShell gebruiken
Als u een container met unieke sleutels wilt maken, maakt u een Azure Cosmos DB-container met een unieke sleutel en TTL
.NET-SDK gebruiken
Wanneer u een nieuwe container maakt met behulp van de .NET SDK v2, kan een UniqueKeyPolicy
object worden gebruikt om unieke sleutelbeperkingen te definiëren.
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" }) }
})
}
});
De Java SDK gebruiken
Wanneer u een nieuwe container maakt met behulp van de Java SDK, kan een UniqueKeyPolicy
object worden gebruikt om unieke sleutelbeperkingen te definiëren.
// 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);
De Node.js SDK gebruiken
Wanneer u een nieuwe container maakt met behulp van de Node.js SDK, kan een UniqueKeyPolicy
object worden gebruikt om unieke sleutelbeperkingen te definiëren.
client.database('database').containers.create({
id: 'container',
uniqueKeyPolicy: {
uniqueKeys: [
{ paths: ['/firstName', '/lastName', '/emailAddress'] },
{ paths: ['/address/zipCode'] }
]
}
});
De Python-SDK gebruiken
Wanneer u een nieuwe container maakt met behulp van de Python SDK, kunnen unieke sleutelbeperkingen worden opgegeven als onderdeel van de woordenlijst die als parameter wordt doorgegeven.
client.CreateContainer('dbs/' + config['DATABASE'], {
'id': 'container',
'uniqueKeyPolicy': {
'uniqueKeys': [
{'paths': ['/firstName', '/lastName', '/emailAddress']},
{'paths': ['/address/zipCode']}
]
}
})
Volgende stappen
- Meer informatie over partitionering
- Verkennen hoe indexering werkt