我正在为MongoDB创建模式,我有两种类型的性别集合模式。我想知道哪一个更适合读取数据(集合可能包含数百万条记录,所以我现在无法实际评估,所以请不要"说尝试样本数据")
一种是数组类型:
"gender": [{
"GenderType":M/F/U,
"total:logins": 12,
"totaluser": 20,
"newuser": 11
},
{
"GenderType":M/F/U,
"total:logins": 12,
"totaluser": 20,
"newuser": 11
},
{
"GenderType":M/F/U,
"total:logins": 12,
"totaluser": 20,
"newuser": 11
}
]
其次是对象类型。
"gender": {
"male": {
"total:logins": 12,
"totaluser": 20,
"newuser": 11
},
"female": {
"total:logins": 11,
"totaluser": 10,
"newuser": 10
}
"unknown": {
"total:logins": 11,
"totaluser": 10,
"newuser": 10
}
}
优先 级
- 性能
- 存储
- 可维护性
当您说"读取"数据时,它可能取决于您要执行的查询类型。您是总是阅读整个文档,还是打算过滤掉性别类型并对内容执行数学功能?数组通常需要MapReduce或聚合框架来处理某些类型的查询。这在大型集合上可能很昂贵,而处理"女性"对象的集合可以更声明性地编写和处理。
你能详细说明你想用数据做什么吗?你可能会得到一个更明确的答案。