Частичный индекс в MongoDB индексирует только документы, которые соответствуют указанному условию фильтра, а не все документы в коллекции. Это определяется с помощью опции partialFilterExpression при создании индекса.
Ограничивая количество индексируемых документов, частичные индексы дают два ключевых преимущества:
Представь коллекцию users, где большинство запросов касаются только активных пользователей. Вместо индексирования всех пользователей ты можешь создать частичный индекс вот так:
db.users.createIndex(
{ email: 1 },
{ partialFilterExpression: { status: "active" } }
)
Этот индекс будет включать только документы, где status равен "active", игнорируя все остальные.
Чтобы MongoDB использовала частичный индекс, запрос должен включать условие фильтра, которое совпадает с partialFilterExpression. Например:
db.users.find({ email: "user@example.com", status: "active" })
Запрос без status: "active" не будет использовать этот индекс, поскольку MongoDB не может гарантировать полноту результатов из частичного индекса в этом случае.
Частичные индексы наиболее эффективны, когда:
null или значений по умолчанию, которые редко используются в запросахЧастичный индекс в MongoDB будет автоматически использован любым запросом к индексированному полю, независимо от того, включает ли запрос условие partialFilterExpression.
Новый — ещё не проверен сообществом
Вы