Любые компромиссы для размещения набора пар имя-значение в одном поле, а не в каждом собственном поле - PullRequest
1 голос
/ 11 августа 2011

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

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

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

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

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

или

[
    {
        name: name1,
        value: value1
    },
    {
        name: name2,
        value: value2
    },
    {
        name: name3,
        value: value3
    }
]
0 голосов
/ 06 сентября 2011

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

...