以下是我的案例:
有3家工厂A,B和C.
他们每个人生产相同的30种产品:P1,P2,...... P3
该文件有两种可能的结构:
{
id: 1,
base: 'A',
date: '01/01/2014',
products:
[
{name:'P1', quantity:20, weight:4},
{name:'P2', quantity:19, weight:5},
...
{name:'P30', quantity:25, weight:6}
]
}
或
{
id: 1,
product: 'P1',
date: '01/01/2014',
bases:
[
{name:'A', quantity:20, weight:4},
{name:'B', quantity:19, weight:5},
{name:'C', quantity:25, weight:6}
]
}
不同之处在于文档总数和嵌入文档数。
实际上,为方便使用该文件,对我来说并没有太大的区别。
我想问一下MongoDB中这两种结构之间的优缺点是什么,它会对性能产生重大影响。
对于每一天,都会有:
通常,任务只是:
提前致谢。
答案 0 :(得分:0)
三个文件,每个文件都有30个嵌入文件作为第一个条件OR
我在这里看到的唯一区别是,作为嵌入式文档(第一个模式),您可能会在MongoDBs文档填充的默认设置上出现碎片,启用powerof2sizes http://docs.mongodb.org/manual/reference/command/collMod/#usePowerOf2Sizes,当然如果您使用的是v2 .6+然后此设置已经开启,您将看不到任何差异。
计算一段时间内每种产品的数量总和
然而,这是第二个架构所青睐的:
计算一段时间内每个基数的生产数量之和
检查给定日期的基数的生产细节(输出类似于第一个条件结构)
检查给定日期产品的生产细节(输出类似于第二个条件结构
实际上是第一个受到基础的支持。
所以目前我会先说,因为填写查询会更容易。