@microf

А не поможете с пониманием mongodb?

Решил я для хобби присмотреться к связке MongoDb, node.js и angular.js. И встрял о отсутствия понимания NoSql, в частности монго.

Нужно мне, чтобы профиль пользователя (допустим, коллекция UserProfile) содержал в себе заполненные шаблоны (так же хранящиеся в отдельных коллекциях)
в случае Mysql у меня было бы
Таблица с названием шаблонов
id, template_name
Таблица с полями шаблона
id, template_id, template_field
Таблица с возможными заполнениями полей шаблона (например, options, для select)
id, template_field_value_name, template_field_id
Я бы взял это - вывел в форму и потом бы занес в таблицу UserTemplate
(id, user_id, template_id) - для вывода шаблонов пользователя и
(id, user_id, field_id, template_field_value_id)- для вывода заполненых полей щаблона.

Что делать в случае mongoDb?
Есть у меня какая то коллекция - шаблон (её ведь надо создавать на каждый шаблон, так?)
Хотя, наверное, можно все шаблоны засунуть и в одну коллекцию (шаблон1: {}, шаблон2)

{template_name : 'Good template', {'field1': {value1,value2,value3},field2:{value1, value2, value3}}

Я выводу в форму этот шаблон и сохраняю в коллекцию UserProfile
{name: 'Ivan', template1: {'field1':'value', field2: 'value'}, 'template2: {...}}


Это так работает?
  • Вопрос задан
  • 2477 просмотров
Пригласить эксперта
Ответы на вопрос 1
dizballanze
@dizballanze
Software developer at Yandex
Вы видимо столкнулись с типичной проблемой декомпозиции в nosql. Нужно решать в зависимости от того как эти данные в итоге будут использоваться. Если вы в итоге будете часто вытаскивать всю коллекцию, то есть смысл все данные поместить в UserProfile (если при этом данных не больше 16Мб на один документ).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы