Индексирование в MongoDb

User avatar
timeau
Уже с Приветом
Posts: 17539
Joined: 15 Aug 2002 00:39
Location: Maryland

Индексирование в MongoDb

Post by timeau »

Отцы,
Проблему решить не могу. Подсобите, плиз.
В Монго есть примерно 200-250 миллионов документов. Каждый документ имеет следующую структуру:

Code: Select all

{Id1,id2, FileInfo: { {f1,d1}, {f2,d2} ... {fn,dn} }
Здесь fi и di имя файла и время его загрузки. То есть пара id1-id2 может быть загружена из фиговой горы файлов. Критерием удаления пары является пустой массив FileInfo.
Проблема: поиск записей с пустым массивом приводит к просматриванию всех записей, и это жутко долго:

Code: Select all

db.Name.remove({FileInfo: {$size : 0}})
Нет ли способа как-либо отиндексировать записи, чтобы работало побыстрее? Пробовал:

Code: Select all

db.Name.remove({FileInfo: {$exists : fi}})
Вроде и заюзывается индекс по FileInfo.f, но все равно идет просмотр всех записей. Нет ли средства, чтоб избавить нас от такого бедства?

P.S. Введение дополнительного индексированного поля типа "длина массива" не работает по другим причинам, а потому не рассматривается.
Не задираться, а то съем!..
User avatar
timeau
Уже с Приветом
Posts: 17539
Joined: 15 Aug 2002 00:39
Location: Maryland

Re: Индексирование в MongoDb

Post by timeau »

Ладно, отбой воздушной тревоги. Выкрутился, как уж под вилами, через дополнительное проиндексированное поле. Но через жопу же!
Не задираться, а то съем!..
User avatar
fruit6
Уже с Приветом
Posts: 4207
Joined: 10 Jan 2004 01:22
Location: n-sk -> MD -> VA

Post by fruit6 »

Это не через ж. Это mingo style.
User avatar
fruit6
Уже с Приветом
Posts: 4207
Joined: 10 Jan 2004 01:22
Location: n-sk -> MD -> VA

Post by fruit6 »

Mongo style

Return to “Вопросы и новости IT”