@fedot1325

Как лучше сделать «переменные» пользователя в MongoDB?

Собственно, с переходом на монгу встал вопрос - как лучше (для скорости получения этих данных в дальнейшем и т.д.) хранить пользовательские переменные?

Допустим, пользователь Вася захотел создать переменные name = Вася, yold = 21, car = Лада Калина. В мускуле я бы сохранил это в виде:
user_id | var_key | var_value
2 | name | Вася
2 | yold | 21
2 | car | Лада Калина

Позже я смогу их легко вытащить значения переменных запросом SELECT var_value FROM variables WHERE user_id=2 AND var_key='name' ...

С монго я нашел 2 способа, как можно хранить такие переменные.
Способ 1:
{
    user_id: 2,
    variables:  [
        {
            var_key: 'name',
            var_value: 'Вася'
        },
        {
            var_key: 'yold',
            var_value: 21
        }
        ...
    ]
}


Способ 2:
{
    user_id: 2,
    variables:  {
        name: 'Вася',
        yold: 21,
        ...
    }
}


Какой вариант будет удобнее использовать? Или может быть есть еще какие-нибудь варианты?
  • Вопрос задан
  • 556 просмотров
Пригласить эксперта
Ответы на вопрос 1
@lega
1) Можно добавлять дублирующие ключи, можно проиндексировать все значения одним индексом (т.к. имя ключа одно), это список можно делать add/del
2) Проще обновлять значение (по прямому пути), дает уникальность по ключу - не будет дублирующих ключей по элементу.
У каждого подхода свои плюсы.
Ещё можно так же как и в mysql, но зачастую это неэффективно.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы