2012-04-13 2 views
1

Как новичок mongo/nosql с фоном RDBMS, я задавался вопросом, как лучше всего продолжить.Извлечь списки данных из Mongo Documents

В настоящее время у меня есть большой набор документов, содержащийся в некоторых полях, что я считаю «справочными данными».
Мне нужно отобразить в интерфейсе поиска, суммируя возможные значения этих «ссылочных полей», чтобы продолжить фильтр в моих наборах документов.

Давайте рассмотрим очень простой и глупый пример о питании. Вот выдержка из некоторых Монго документов:

{ "_id": 1, "name": "apple", "category": "fruit"} 
{ "_id": 1, "name": "orange", "category": "fruit"} 
{ "_id": 1, "name": "cucumber", "category": "vegetable"} 

В области применения я хотел бы иметь переключателе отображающий все возможных значения «категория». Здесь он будет отображать «фрукты» и «овощ».

Каков наилучший способ для продолжения?

  • выписка из существующих документов?
  • создать несколько справочных документов с перечнем уникальных возможных значений (как я хотел бы сделать в RDBMS)
  • магазин справочных данных в РСУБД и программно связать Монго и RDBMS ...
  • что-то еще?

ответ

1

Первый вариант является самым легким в реализации и должен быть эффективным, если у вас правильно установлены индексы (см. distinct command), поэтому я бы пошел с этим.

Вы также можете выбрать второй вариант (связывающую к справочной коллекции - RDBMS путь), которая торгует производительность (потребуется больше запросов для выборки данных) для пространства (вам потребуется меньше места). Кроме того, эта опция предпочтительнее, если категория также используется в других коллекциях.

В этом случае я бы посоветовал использовать смешанную систему (NoSQL + RDBMS), так как другие варианты лучше.

Вы также можете хранить значения категорий непосредственно в коде приложения - зависит от вашего прецедента. Иногда это имеет смысл, хотя любой фанатик РСУБД разрывается (или хуже), если вы ему это расскажете. YMMV. ;)

Смежные вопросы