Любые компромиссы для размещения набора пар имя-значение в одном поле, а не в каждом собственном поле
У нас есть набор пользовательских данных, который состоит из пар имя / значение, представленных в одном документе. Мы используем mongodb для хранения этих данных и думаем просто поместить документ пар имя / значение в виде строки в одно поле в коллекции, а не создавать отдельные поля для каждой пары имя / значение в mongo и помещать каждую пару напрямую. в свое поле.
Есть ли у кого-нибудь мнение о том, почему первое было бы плохой идеей. Мы не ожидаем большого количества записей на запрос и, вероятно, около 100 пар имя / значение на запись
2 ответа
Ну, я не вижу никакой выгоды в хранении его в виде одной строки. Размер документа будет примерно одинаковым, вы не сможете индексировать поля имен отдельных пар и не сможете запросить существование конкретных пар имя / значение. С другой стороны, я не могу думать о единственной выгоде. Единственный реальный выбор - делать ли это:
{
name1: value1,
name2: value2,
name3: value3
}
или же
[
{
name: name1,
value: value1
},
{
name: name2,
value: value2
},
{
name: name3,
value: value3
}
]
Каков рекомендуемый способ индексирования последнего случая, если вам нужно искать, где "имя = ххх" И "значение" ="ххх". Должен ли индексироваться весь поддокумент или каждое поле (например, "имя" и " значение"?