我想了解数组和哈希MongoDB中的文件(其中,从我的理解是通过数组实现)的内部分配和安置。
在我们的领域,我们有5-6之间成千上万和成千上万个键值对的任何地方逻辑分组多达水平深处(认为嵌套的哈希值)的文档。
我们代表的按键嵌套有一个点,例如, xyz
,其中在插入的MongoDB会自动变成是这样的:
{
"_id" : "whatever",
"x" : {
"y" : {
"z" : 5
}
}
}
最常见的操作是增加值,这是我们做的一个原子$inc
在同一个更新命令时,通常1000+值。 新的密钥会陆续加入,但不经常,说,100次/天。
它发生在我的另一种表示将在名字,但一些其他的分隔符不使用点和创建平面文件,例如,
{
"_id" : "whatever",
"x-y-z" : 5
}
鉴于键值对的使用模式来讲数量和$inc
更新和新钥匙插入,我在以下方面寻找的两种方法之间的权衡指导:
磁盘空间开销
性能
$inc
更新新的键将插入性能