MongoDB индексы и представления - PullRequest
0 голосов
/ 15 ноября 2018

У меня проблемы с поиском большого количества информации об использовании индексов 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 индексу), а затем последующий запрос к представлению - это второй отдельный запрос с собственным индексом (ами)?

1 Ответ

0 голосов
/ 15 ноября 2018

Да, создание составного индекса , как описано, поможет.(Кстати, вам, вероятно, следует использовать параметр background при построении индекса.)

Учитывая это, может ли Монго использовать составной индекс для первоначального построения представления, а затем длявпоследствии запросите его?

Здесь действительно нет "построения представления", представления создаются по требованию .Индекс существует в коллекции и используется представлением и другими запросами, которые соответствуют определению индекса .

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...