Mongodb 将一组名称-值对放在单个字段中而不是放在各自字段中的任何权衡

Mongodb 将一组名称-值对放在单个字段中而不是放在各自字段中的任何权衡,mongodb,name-value,Mongodb,Name Value,我们有一组用户数据,这些数据由单个文档中表示的名称/值对组成。我们使用mongodb来存储这些数据,并考虑将名称/值对文档作为字符串放在集合中的单个字段中,而不是为mongo中的每个名称/值对创建单独的字段,并将每个名称/值对直接放在自己的字段中 有没有人对为什么前者是个坏主意有什么看法。我们不希望每个查询有很多记录,每个记录大约有100个名称/值对嗯,我看不出将其存储为单个字符串有什么好处。文档大小大致相同,您将无法索引单个对的名称字段,也无法查询是否存在特定的名称/值对。另一方面,我想不出有

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


有没有人对为什么前者是个坏主意有什么看法。我们不希望每个查询有很多记录,每个记录大约有100个名称/值对

嗯,我看不出将其存储为单个字符串有什么好处。文档大小大致相同,您将无法索引单个对的名称字段,也无法查询是否存在特定的名称/值对。另一方面,我想不出有什么好处。唯一真正的选择是是否这样做:

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


如果您需要在“name=xxx”和“value=”xxx”的位置进行搜索,建议采用什么方法对后一种情况进行索引。是对整个子文档进行索引,还是对每个字段(例如“name”和“value”)进行索引“?

您认为将所有内容存储在一个大字符串中有什么好处?我想不出任何好处。我也不相信有。模型中存在一个字符串结构(文档)我们正在重新设计,试图确定我们是否应该咬紧牙关,改变我们处理数据的方式。非常欢迎。仅供参考,当您知道文档中将包含哪些字段(至少是您需要索引的字段)时,最好的方法更合适后一种方法适用于需要在“字段”上建立索引的情况在不预先知道字段是什么的情况下。最好用此答案打开一个新问题,以供将来参考。帮助其他人。但要回答此问题,您可以使用其中任何一个,但每种情况下的查询都会有所不同。将我链接到一个新打开的问题,我将详细说明。
[
    {
        name: name1,
        value: value1
    },
    {
        name: name2,
        value: value2
    },
    {
        name: name3,
        value: value3
    }
]