diff --git a/docs/database/indexes.mdx b/docs/database/indexes.mdx index e399320e11..9cf0bd3aec 100644 --- a/docs/database/indexes.mdx +++ b/docs/database/indexes.mdx @@ -63,3 +63,22 @@ export const MyCollection: CollectionConfig = { ], } ``` +## Localized fields and MongoDB indexes + +When you set `index: true` or `unique: true` on a localized field, MongoDB creates one index **per locale path** (e.g., `slug.en`, `slug.da-dk`, etc.). With many locales and indexed fields, this can quickly approach MongoDB's per-collection index limit. + +If you know you'll query specifically by a locale, index only those locale paths using the collection-level `indexes` option instead of setting `index: true` on the localized field. This approach gives you more control and helps avoid unnecessary indexes. + +```ts +import type { CollectionConfig } from 'payload' + +export const Pages: CollectionConfig = { + fields: [{ name: 'slug', type: 'text', localized: true }], + indexes: [ + // Index English slug only (rather than all locales) + { fields: ['slug.en'] }, + // You could also make it unique: + // { fields: ['slug.en'], unique: true }, + ], +} +```