1

我们有一组用户数据,由单个文档中表示的名称/值对组成。我们正在使用 mongodb 来存储该数据,并且正在考虑将名称/值对的文档作为字符串放在集合中的单个字段中,而不是为 mongo 中的每个名称/值对创建单独的字段并直接放置每一对进入自己的领域。

有没有人对为什么前者是一个坏主意有任何意见。我们预计每个查询不会有很多记录,每条记录可能有大约 100 个名称/值对

4

2 回答 2

2

好吧,我认为将其存储为单个字符串没有任何好处。文档大小将大致相似,您将无法索引各个对的名称字段,并且您无法查询特定名称/值对的存在。另一方面,我想不出一个好处。唯一真正的选择是是否这样做:

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

或者

[
    {
        name: name1,
        value: value1
    },
    {
        name: name2,
        value: value2
    },
    {
        name: name3,
        value: value3
    }
]
于 2011-08-11T09:29:50.223 回答
0

如果您需要搜索“name=xxx”和“value="xxx”,推荐的索引后一种情况的方法是什么。应该索引整个子文档,还是每个字段(例如“name”和“价值”?

于 2011-09-06T15:13:00.887 回答