MongoDb Index / Найти в списке списков - PullRequest
2 голосов
/ 01 сентября 2011

Я использую драйвер C # mongodb для сериализации словаря во встроенный документ. Встроенный документ выглядит примерно так:

"Lookup" : [[1234, {
    "Name" : "bob",
    "Age" : 25,
  }], [4567, {
    "Name" : "fred",
    "Age" : 31,
  }]]

Можно ли создать индекс только по «ключу» (т. Е. 1234, 4567 и т. Д.) Списка? Я создал индекс для Lookup, но я не уверен, для чего он создал индекс.

Я предполагаю, что он проиндексировал весь документ, потому что запрос:

find ( {"Lookup" : { "$in" : [1234] } } )

Ничего не соответствует.

Спасибо

1 Ответ

1 голос
/ 01 сентября 2011

Вы должны изменить свою структуру, чтобы она выглядела примерно так:

"Lookup" : [
    {key:1234,  value:{
      "Name" : "bob",
      "Age" : 25,
    }},
    {key: 4567, value: {
      "Name" : "fred",
      "Age" : 31,
    }}
]

Тогда вы можете индексировать {"Lookup.key": 1}, и она будет делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...