Оптимизировать эффективность поиска с помощью вложенной коллекции mongoDB?
Предположим, у нас есть следующая структура данных:
{
{
"name" : "ElementName1",
"index" : [
{"name" : "key1", "value" : 1},
{"name" : "key2", "value" : 2},
{"name" : "key3", "value" : 3}
]
},
{
"name" : "ElementName2",
"index" : [
{"name" : "key1", "value" : 3},
{"name" : "key2", "value" : 2},
{"name" : "key3", "value" : 7}
]
},
}
Идея состоит в том, чтобы иметь наилучшую производительность чтения. Предположим, что приоритет имеет поиск по имени, поэтому мы обеспечиваем возрастающий индекс по имени (фактически я написал прототип, и индекс значительно увеличивает скорость поиска. Это сокращает время поиска с 1-2 секунд до 0,1 секунды для миллиона действительно больших документов.) Идея состоит в том, чтобы как-то индексировать поля вложенного массива, но проблема в том, что они пишут здесь, это как-то невозможно. Я пытаюсь реализовать это, используя комбинацию mongodb-csharp, но предлагаю не указывать язык. Каковы возможные варианты увеличения, как я вижу:
- Реализуйте этот индекс так, как мне пока не известно.
- Создайте еще одну коллекцию для этих вложенных полей массива и внесите ее в указатель.
- Другие опции.
Пожалуйста, поделитесь своим мнением и идеями.