A collection can be created by using the CreateDocumentCollectionAsync
method of the DocumentClient
class. A collection is a container of JSON documents and associated JavaScript application logic.
async Task CreateCollection(DocumentClient client)
{
var databaseName = "<your database name>";
var collectionName = "<your collection name>";
DocumentCollection collectionInfo = new DocumentCollection();
collectionInfo.Id = collectionName;
// Configure collections for maximum query flexibility including string range queries.
collectionInfo.IndexingPolicy = new IndexingPolicy(new RangeIndex(DataType.String) { Precision = -1 });
// Here we create a collection with 400 RU/s.
await client.CreateDocumentCollectionAsync(UriFactory.CreateDatabaseUri(databaseName),
collectionInfo, new RequestOptions { OfferThroughput = 400 });
}
Or you can check if the collection exists and create it if necessary:
async Task CreateDocumentCollectionIfNotExists(DocumentClient client)
{
var databaseName = "<your database name>";
var collectionName = "<your collection name>";
try
{
await client.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName));
}
catch (DocumentClientException e)
{
// If the document collection does not exist, create a new collection
if (e.StatusCode == HttpStatusCode.NotFound)
{
DocumentCollection collectionInfo = new DocumentCollection();
collectionInfo.Id = collectionName;
// Configure collections for maximum query flexibility including string range queries.
collectionInfo.IndexingPolicy = new IndexingPolicy(new RangeIndex(DataType.String) { Precision = -1 });
// Here we create a collection with 400 RU/s.
await client.CreateDocumentCollectionAsync(UriFactory.CreateDatabaseUri(databaseName),
collectionInfo, new RequestOptions { OfferThroughput = 400 });
}
else
{
// Rethrow
throw;
}
}
}