
Skill
documentdb-indexing
select and shape Azure DocumentDB indexes
Description
Index-type selection and shape guidance for Azure DocumentDB — when to use single-field, compound (ESR), multikey, wildcard, hashed, 2dsphere, TTL, and vector indexes; query-pattern → index-shape cookbook; per-collection index budget; DocumentDB-specific preference for `textSearch` over community `$text`. Use when designing or reviewing indexes, choosing an index type for a query pattern, or deciding whether an additional index is worth the write cost.
SKILL.md
Indexing Strategies — Azure DocumentDB
Companion skill to documentdb-query-optimizer. That skill answers "why is this query slow?"; this one answers "which index should I create, and what shape should it take?".
Azure DocumentDB supports the standard MongoDB index types. Only _id is created automatically — every other index must be created explicitly. Default limit: 64 single-field indexes per collection (extendable to 300 on request).
Index engine types
_idvs regular indexes: The_idindex is a B-tree, created automatically, and cannot be dropped. For sharded collections the_idkey is composite — it includes a hash of the shard key. All other indexes created viacreateIndexare RUM indexes; the exception is geospatial indexes (2dsphere,2d), which are GiST indexes.
Rules
- index-single-field — When a single-field index is enough; direction, options (
unique,sparse,partial, collation). - index-compound-esr — Compound index design via ESR (Equality → Sort → Range); prefer one compound over many singles.
- index-multikey-arrays — Indexing array fields; the one-array-per-compound (parallel-array) restriction; multikey can't cover queries.
- index-text-prefer-textsearch — On Azure DocumentDB, prefer the
textSearchindex +$searchover community$textindexes. - index-wildcard-dynamic-schemas — Wildcard indexes for truly dynamic schemas; cost vs benefit; scope the prefix.
- index-hashed-shard-keys — Hashed indexes for even distribution; when sharding becomes necessary; shard-key alignment; range-query caveats.
- index-2dsphere-geospatial — GeoJSON types,
[longitude, latitude]order,$near/$geoWithin/$geoIntersects. - index-ttl-expiry — TTL indexes:
expireAfterSecondssemantics, date-field requirement, monitoring. - index-count-budget — Keep 5–15 indexes per collection; review
$indexStats; drop unused. - index-lifecycle-drop-hide — Safe lifecycle: inventory → detect redundancy →
hideIndex→dropIndex. The_idindex cannot be dropped. - index-pattern-cookbook — Query-pattern → index-shape cookbook (equality+sort, multi-equality, selectivity ordering, $eq + $in mix, range+sort, equality+range, hybrid, partial index for large arrays).
More skills from the documentdb-agent-kit repository
View all 17 skillsdocumentdb-azure-deployment
deploy Azure DocumentDB clusters
Jul 12AzureBicepCLIDatabase +2documentdb-connection
configure MongoDB connections for DocumentDB
Jul 12AzureDatabasePerformancedocumentdb-data-modeling
design Azure DocumentDB data models
Jul 12AzureData ModelingDatabaseMongoDBdocumentdb-driver
implement Azure DocumentDB driver best practices
Jul 12AzureDatabaseMongoDBSDKdocumentdb-full-text-search
implement full-text search in Azure DocumentDB
Jul 15AzureDatabaseSearchdocumentdb-high-availability
configure high availability for DocumentDB
Jul 12AzureDatabaseOperationsPerformance
More from Azure (Microsoft)
View publisherazure-arg-external-evaluation-policy-author
author and test Azure Resource Graph policies
azure-policy
Jul 12AzureComplianceGovernancePolicyazure-blueprints-migration
migrate Azure Blueprints to Template Specs
azure-blueprints
Jul 12AzureDeploymentInfrastructure as CodeMigrationapiview-feedback-resolution
resolve APIView feedback on Azure SDKs
azure-sdk-tools
Jul 12API DevelopmentAzureCode ReviewDocumentationazsdk-common-live-and-recorded-tests
deploy resources and run Azure SDK tests
azure-sdk-tools
Jul 12AzureDeploymentSDKTestingazsdk-common-prepare-release-plan
manage Azure SDK release plan work items
azure-sdk-tools
Jul 12AzureGitHubProject ManagementSDKazsdk-common-sdk-release
release Azure SDK packages
azure-sdk-tools
Jul 12AzureCI/CDDeploymentSDK