I'm trying to add a range index to a specific property in an Azure DocumentDB collection as described in this article. When my code to create the collection is executed I get the following error:
The special mandatory indexing path \\"\/\\" is not provided in any of the path type sets. Please provide this path in one of the sets.
The code I'm using to create the collection is:
var collection = new DocumentCollection { id = "myCollectionID" };
collection.IndexingPolicy.IncludedPaths.Add(new IndexingPath
{
IndexType = IndexType.Range,
Path = "/\"TimeStamp\"/\"Epoch\"/?",
NumericPrecision = 7
});
this._client.CreateDocumentCollectionAsync(database.SelfLink, collection);
The code works if I set the path of the index to simply "/", but I'd prefer to be able to create the index on specific properties. What am I doing wrong?
You have to include "/" as an additional IncludedPath like:
var collection = new DocumentCollection { id = "myCollectionID" };
collection.IndexingPolicy.IncludedPaths.Add(new IndexingPath
{
IndexType = IndexType.Range,
Path = "/\"TimeStamp\"/\"Epoch\"/?",
NumericPrecision = 7
});
collection.IndexingPolicy.IncludedPaths.Add(new IndexingPath
{
IndexType = IndexType.Hash,
Path = "/"
});
this._client.CreateDocumentCollectionAsync(database.SelfLink, collection);
Alternatively, if you want to exclude every other path completely from indexing, you can do the following:
var collection = new DocumentCollection { id = "myCollectionID" };
collection.IndexingPolicy.IncludedPaths.Add(new IndexingPath
{
IndexType = IndexType.Range,
Path = "/\"TimeStamp\"/\"Epoch\"/?",
NumericPrecision = 7
});
collection.IndexingPolicy.ExcludedPaths.Add("/");
this._client.CreateDocumentCollectionAsync(database.SelfLink, collection);
DocumentDB always requires you to either include or exclude "/", so that the indexing scheme is unambiguous. Hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With