是否有关于是否直接在mongoDb上mapReduce,或者获得结果然后mapReduce它们的任何见解?
我想在几个文档上构建一些自定义查询。假设它类似于我文档中的myArray
值,它读作
myArray: [
{
event: 'foo',
timestamp: 1,
}, {
event: 'bar',
timestamp: 2,
}, {
event: 'baz',
timestamp: 3,
},
]
我想知道foo
和bar
之间的平均时间。
根据我的理解,我可以构建一个mongo查询,它将MapReduce我的集合并给我结果。
或者我可以简单地查询myArray
键并mapReduce结果得到我想要的。
这两种方法有什么优缺点吗?
[edit]请注意,我不是在问如何编写mapreduce代码,而是在问我应该在数据库端还是服务器端编写它
服务器端会更快,但是用应用程序代码重载db服务器并不总是明智的,并且数据库资源通常比在通用后端机器上使用相同的资源要昂贵得多。
无论如何,如果你的算法合适,聚合管道是正确的选择。