我应该在mongo还是服务器端mapReduce?

时间:2015-09-01 13:14:33

标签: node.js mongodb mapreduce

对mongoDb直接mapReduce有什么见解,或者得到结果然后mapReduce吗?

我想在一些文档上构建一些自定义查询。让我们说它类似于我的文档中有myArray值,其内容为

myArray: [
  {
    event: 'foo',
    timestamp: 1,
  },  {
    event: 'bar',
    timestamp: 2,
  },  {
    event: 'baz',
    timestamp: 3,
  },
]

我想知道foobar之间的平均时间。

根据我的理解,我可以构建一个mongo查询来MapReduce我的收藏并给我结果。

或者我可以简单地查询myArray键并mapReduce结果得到我想要的。

这两种方法都有任何利弊吗?

[edit] 请注意,我并没有要求 如何编写mapreduce代码,而是在问我是否应该将其写入数据库 - 侧面或服务器端

1 个答案:

答案 0 :(得分:0)

服务器端会更快,但是使用应用程序代码重载数据库服务器并不总是明智的,并且数据库资源通常比通用后端计算机上的资源要贵得多。

无论如何,更快,更受控制的是Aggregation Pipeline:如果您的算法适合,这是正确的选择。