У меня проблемы с поиском большого количества информации об использовании индексов MongoDB при запросах представлений. Состояние документов :
Использование индекса и операции сортировки
Представления используют индексы базовой коллекции.
Поскольку индексы находятся в базовой коллекции, вы не можете создавать, отбрасывать или пересоздавать индексы непосредственно в представлении, а также не получать список индексов в представлении.
Нельзя указывать $ естественную сортировку в представлении..
ааа вот и все.Я пытаюсь выяснить, как правильно индексировать мои базовые коллекции (основываясь на моем опыте работы с базами данных SQL), чтобы максимизировать производительность запросов моего приложения к представлениям.
Например, допустим, у меня есть коллекция, содержащая продуктсущности в коллекции products
и имеющие общие атрибуты deleted
и categoryId
.Кроме того, я мог бы создать представление productsActive
, определенное как { deleted: false }
, и в качестве такового для индекса в коллекции products
: { deleted: 1 }
.Теперь предположим, что я обычно делаю следующий запрос:
db.productsActive.find({categoryId: 'turntable'});
Интуитивно я хочу использовать составной индекс здесь в таблице products
:
db.products.createIndex({deleted: 1, categoryId: 1});
Я делаю это правильно?Я полагаю, что в конечном итоге меня смущает утверждение документа:
Представления используют индексы базовой коллекции.
Учитывая, что Монго может использовать составной индекс для первоначальногопостроить представление, а затем запросить его?Или просто выводит представление на один шаг (привязанный к 1 индексу), а затем последующий запрос к представлению - это второй отдельный запрос с собственным индексом (ами)?