Azure Cosmos DB kapsayıcısı için benzersiz anahtarlar tanımlama
UYGULANANLAR: NoSQL
Bu makalede, Azure Cosmos DB kapsayıcısı oluştururken benzersiz anahtarları tanımlamanın farklı yolları açıklanmaktadır. Şu anda azure portalını kullanarak veya SDK'lardan biri aracılığıyla bu işlemi gerçekleştirmek mümkündür.
Azure portal’ı kullanma
Azure Portal’ında oturum açın.
Yeni bir Azure Cosmos DB hesabı oluşturun veya var olan bir hesabı seçin.
Veri Gezgini bölmesini açın ve üzerinde çalışmak istediğiniz kapsayıcıyı seçin.
Yeni Kapsayıcı'ya tıklayın.
Kapsayıcı Ekle iletişim kutusunda + Benzersiz anahtar ekle'ye tıklayarak benzersiz bir anahtar girdisi ekleyin.
Benzersiz anahtar kısıtlamasının yollarını girin
Gerekirse + Benzersiz anahtar ekle'ye tıklayarak daha fazla benzersiz anahtar girdisi ekleyin
PowerShell kullanma
Benzersiz anahtarlara sahip bir kapsayıcı oluşturmak için bkz. Benzersiz anahtar ve TTL ile Azure Cosmos DB kapsayıcısı oluşturma
.NET SDK’yı kullanma
.NET SDK v2 kullanarak yeni bir kapsayıcı oluştururken, benzersiz anahtar kısıtlamalarını tanımlamak için bir UniqueKeyPolicy
nesne kullanılabilir.
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" }) }
})
}
});
Java SDK'sını kullanma
Java SDK'sını kullanarak yeni bir kapsayıcı oluştururken, benzersiz anahtar kısıtlamaları tanımlamak için bir UniqueKeyPolicy
nesne kullanılabilir.
// 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);
Node.js SDK'sını kullanma
Node.js SDK'sını kullanarak yeni bir kapsayıcı oluştururken, benzersiz anahtar kısıtlamalarını tanımlamak için bir UniqueKeyPolicy
nesne kullanılabilir.
client.database('database').containers.create({
id: 'container',
uniqueKeyPolicy: {
uniqueKeys: [
{ paths: ['/firstName', '/lastName', '/emailAddress'] },
{ paths: ['/address/zipCode'] }
]
}
});
Python SDK'yı kullanma
Python SDK'sını kullanarak yeni bir kapsayıcı oluştururken, parametre olarak geçirilen sözlüğün bir parçası olarak benzersiz anahtar kısıtlamaları belirtilebilir.
client.CreateContainer('dbs/' + config['DATABASE'], {
'id': 'container',
'uniqueKeyPolicy': {
'uniqueKeys': [
{'paths': ['/firstName', '/lastName', '/emailAddress']},
{'paths': ['/address/zipCode']}
]
}
})
Sonraki adımlar
- Bölümleme hakkında daha fazla bilgi edinin
- Dizin oluşturmanın nasıl çalıştığını keşfetme