Любые компромиссы для размещения набора пар имя-значение в одном поле, а не в каждом собственном поле

У нас есть набор пользовательских данных, который состоит из пар имя / значение, представленных в одном документе. Мы используем mongodb для хранения этих данных и думаем просто поместить документ пар имя / значение в виде строки в одно поле в коллекции, а не создавать отдельные поля для каждой пары имя / значение в mongo и помещать каждую пару напрямую. в свое поле.

Есть ли у кого-нибудь мнение о том, почему первое было бы плохой идеей. Мы не ожидаем большого количества записей на запрос и, вероятно, около 100 пар имя / значение на запись

2 ответа

Решение

Ну, я не вижу никакой выгоды в хранении его в виде одной строки. Размер документа будет примерно одинаковым, вы не сможете индексировать поля имен отдельных пар и не сможете запросить существование конкретных пар имя / значение. С другой стороны, я не могу думать о единственной выгоде. Единственный реальный выбор - делать ли это:

{
    name1: value1,
    name2: value2,
    name3: value3
}

или же

[
    {
        name: name1,
        value: value1
    },
    {
        name: name2,
        value: value2
    },
    {
        name: name3,
        value: value3
    }
]

Каков рекомендуемый способ индексирования последнего случая, если вам нужно искать, где "имя = ххх" И "значение" ="ххх". Должен ли индексироваться весь поддокумент или каждое поле (например, "имя" и " значение"?

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