Оптимизировать эффективность поиска с помощью вложенной коллекции 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, но предлагаю не указывать язык. Каковы возможные варианты увеличения, как я вижу:

  1. Реализуйте этот индекс так, как мне пока не известно.
  2. Создайте еще одну коллекцию для этих вложенных полей массива и внесите ее в указатель.
  3. Другие опции.

Пожалуйста, поделитесь своим мнением и идеями.

0 ответов

Другие вопросы по тегам