У меня очень большая коллекция (более 800 тыс.), и мне нужно реализовать запрос для функции автозаполнения (только на основе начала слов) на основе тегов. мои документы выглядят так:
{
"_id": "theid",
"somefield": "some value",
"tags": [
{
"name": "abc tag1",
"vote": 5
},
{
"name": "hij tag2",
"vote": 22
},
{
"name": "abc tag3",
"vote": 5
},
{
"name": "hij tag4",
"vote": 77
}
]
}
если, например, мой запрос будет для всех тегов, которые начинаются с «ab» и имеют «somefield», который является «некоторым значением», результатом будет «abc tag1», «abc tag3» (только имена). Меня гораздо больше волнует скорость запросов, чем скорость вставок и обновлений.
Я предполагаю, что фреймворк агрегации был бы правильным решением, но что было бы лучшим конвейером и индексами для очень быстрых запросов?
документы не являются документами с тегами, они представляют собой документы, представляющие клиентский объект, они содержат гораздо больше полей данных, которые я пропустил для простоты, у каждого клиента есть несколько тегов и другое поле (я изменил его имя, чтобы его нельзя было спутать с тегами множество ). Мне нужно получить набор без дубликатов всех тегов, которые есть у группы клиентов.