2015-09-15 2 views
1

У меня есть массив в документах, но разные запросы используют его по-разному. Это может быть запрос или поиск по полям вложенного массива $exists. Какие индексы я должен делать в этих случаях?

Кроме того, я использую MongoDb v. 3.0.2 & Official c# driver v. 2.0

+0

Индексирование массивов - MongoDB индексирует каждое значение массива, чтобы вы могли запрашивать отдельные элементы. – gpullen

+1

Недостаточно информации здесь, но я предполагаю, что вы хотите сделать индекс для массивов, т. Е. '{'S.c': 1, 's.b': 1} ', а не на весь массив – Sammaye

+0

Мне нужен отдельный индекс для запроса $ exist и для запроса для вложенного поля в объектах массива –

ответ

2

Если вы хотите выполнить поиск по полям элементов вложенного массива, то вам нужны отдельные индексы для различных полей или полей комбинаций вы запрос по. Какие индивидуальные или составные индексы имеют смысл здесь, зависит от того, какие именно запросы вы выполняете.

В MongoDB нет «индексов дикой карты», которые индексируют все поля данного поддокумента. Однако иногда вы можете эмулировать это поведение, заменяя поддоку массивом объектов { key:"key", value:"value" }.

+0

Как насчет индексации только для запроса' $ exists'? –

+0

@ MongoUser101 Вы хотите знать, существует ли массив в целом или существует конкретная запись массива? – Philipp

+0

Я хочу знать, существует ли массив в целом –

Смежные вопросы