Я изучал индексирование массивов (multi-key) на MongoDB, и у меня есть следующие вопросы, на которые я не смог найти много документации:
Индексы в массиве поддокументов
Итак, если у меня есть поле массива, которое выглядит примерно так:
{field : [
{a : "1"},
{b : "2"},
{c : "3"}
]
}
Я запрашиваю только на field.a
и field.c
отдельно (не оба вместе), я считаю, что у меня есть выбор между следующими альтернативами:
-
db.Collection.ensureIndex({field : 1});
-
db.Collection.ensureIndex({field.a : 1}); db.Collection.ensureIndex({field.c : 1});
То есть: индекс для всего массива; или два индекса по встроенным полям. Теперь мои вопросы:
- Как вы визуализируете индекс во всем массиве в опции 1 (это даже полезно)? Какие запросы полезны для такого индекса?
- Учитывая ситуацию с запросом, которую я описал, какой из этих двух вариантов лучше, и почему?