【发布时间】:2015-02-07 15:52:18
【问题描述】:
我正在考虑是否可以使用 MongoDB 来帮助解决我们的存储和处理问题。这个想法是计算将以多处理方式在每个节点上完成,并使用唯一的 mongodb ObjectId 写入 mongodb。字典中的数据结构如下:
{a: {b: {c: [100, 200, 300]} }
a、b 和 c 是整数键
当计算完成并将所有记录写入 mongo 时,必须组合文档,以便我们按顶层 a 分组,然后按 b 分组,然后按 c 分组。所以两个文档可能包含(Example A):
document1:{24: {67: {12: [100, 200]}}}
文档2:{24: {68: {12: [100, 200]}}}
那么如果我们结合:
合并:{24: {67: {12: [100, 200]}, 68: [100, 200]}}
如果我们还有另外几个文档(ExampleB):
document1:{24: {67: {12: [100, 200]}}}
文档2:{24: {67: {12: [300, 400]}}}
合并:{24: {67: {12: [100, 200, 300, 400]}}}
结合这些嵌套结构的最佳方法是什么。我可以手动遍历每个文档并在 python 中执行此操作,但是有更聪明的方法吗?我需要保留底层数据结构。
【问题讨论】:
-
mongodb 中的
$push指令不能为您解决这个问题吗? -
为什么不使用 map reduce?动态键使聚合结果变得更加困难。
-
@AlexLaties,我想将这些 $push 作为批处理作业,并且由于数据结构的原因,想知道它是否太复杂。