Составной уникальный индекс обеспечивает уникальность для комбинации полей, а не для каждого поля отдельно.
db.users.createIndex({ email: 1, tenantId: 1 }, { unique: true })
1 указывает на сортировку по возрастанию для каждого поляunique: true гарантирует, что никакие два документа не могут иметь одинаковую комбинацию значений email и tenantIdemail может существовать с разными значениями tenantId{ email: "a@b.com", tenantId: 1 } и { email: "a@b.com", tenantId: 2 }{ email: "a@b.com", tenantId: 1 }Этот паттерн часто используется в мультитенантных приложениях, где один и тот же адрес электронной почты может быть действителен для разных тенантов, но должен оставаться уникальным внутри одного тенанта.
Составной уникальный индекс с полями { email: 1, tenantId: 1 } предотвращает появление одного и того же адреса электронной почты в любом документе, независимо от значения tenantId.
Новый — ещё не проверен сообществом
Вы