Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我应该在mongo还是服务器端使用mapReduce?_Node.js_Mongodb_Mapreduce - Fatal编程技术网

Node.js 我应该在mongo还是服务器端使用mapReduce?

Node.js 我应该在mongo还是服务器端使用mapReduce?,node.js,mongodb,mapreduce,Node.js,Mongodb,Mapreduce,关于是否直接在mongoDb上使用mapReduce,或者获取结果然后使用mapReduce,有什么见解吗 我想在一些文档上构建一些自定义查询。假设它类似于在我的文档中有一个myArray值,即 myArray: [ { event: 'foo', timestamp: 1, }, { event: 'bar', timestamp: 2, }, { event: 'baz', timestamp: 3, }, ] 我想知道f

关于是否直接在mongoDb上使用mapReduce,或者获取结果然后使用mapReduce,有什么见解吗

我想在一些文档上构建一些自定义查询。假设它类似于在我的文档中有一个myArray值,即

myArray: [
  {
    event: 'foo',
    timestamp: 1,
  },  {
    event: 'bar',
    timestamp: 2,
  },  {
    event: 'baz',
    timestamp: 3,
  },
]
我想知道foo和bar之间的平均时间

据我所知,我可以构建一个mongo查询来映射我的集合并给出结果

或者,我可以简单地查询myArray键,并将结果映射为我想要的结果

这两种方法都有利弊吗


[编辑]请注意,我不是问如何编写mapreduce代码,而是问是否应该编写数据库端或服务器端的代码。服务器端的速度更快,但使用应用程序代码重载db服务器并不总是明智的,而且数据库资源通常比一般后端机器上的数据库资源要昂贵得多


无论如何,更快、更可控的是:如果你的算法合适,这是正确的选择。

你尝试过的代码在哪里?你还没有编写它。我很清楚如何写出这两种解决方案,但是我无法决定一种方法是否比另一种方法更好假设您使用的是mapReduce,因为查询处理的是一个大型集合,并且输出的数据将是该数据的一个较小的外推,为什么您要浪费时间从mongo服务器检索所有文档,同时假设您的mongo服务器不在同一个服务器上在执行mapReduce之前使用服务器?即使是一个小的集合,MangGDB是用C++编写的,所以MapReduce可能比使用JavaScript更能发挥作用。