草庐IT

mapReduce

全部标签

MongoDB - 锁定如何为 Map Reduce 工作?

MongoDBmapreduce在对集合执行操作时会锁定集合吗?我有一些应用程序广泛而密集地使用的集合。Map/Reduce通过cron作业每10分钟在后台运行一次,在那个广泛和密集使用的集合上。我想知道Map/Reduce执行不佳的可能性是否很大,因为该集合上正在进行其他操作(插入、更新,主要是读取)。特别是,我想知道Map/Reduce是否会干扰用户对集合执行的正常操作。 最佳答案 MapReduce,如果输出到集合将在写入时进行多次写入锁定(就像任何创建/更新集合的操作一样)。如果您正在执行内联MR,则可以避免该锁定(但对结果

mongodb - map reduce 的意外输出

我有以下map和reduce函数,它们应该给我一个组中的最大日期。map:function(){if(this.topic_id!=0){emit(this.topic_id,{date_posted:this.date_posted});}}减少:function(key,values){varre_date=ISODate('1970-01-01T00:00:00Z');values.forEach(function(value){if(re_date==ISODate('1970-01-01T00:00:00Z')){re_date=value.date_posted;}if(r

mongodb - 如何对另一个集合中的键进行 mapreduce

假设我有一组这样的用户:-{"_id":"1234","Name":"John","OS":"5.1","Groups":[{"_id":"A","Name":"GroupA"},{"_id":"C","Name":"GroupC"}]}我收集了这样的事件:-{"_id":"15342","Event":"VIEW","UserId":"1234"}我可以使用mapreduce来计算每个用户的事件数,因为我可以发出“UserId”并计算它,但是我现在想做的是按组计算事件数。如果我的事件文档中有一个“Groups”数组,那么这会很容易,但我没有,这只是一个例子,实际应用要复杂得多,我不想

javascript - 使用 Mongoose 和 NodeJS 在 MapReduce 中添加更多字段

我有这个Mongoose模式varSessionSchema=mongoose.Schema({id:Number,cure:{type:mongoose.Schema.Types.ObjectId,ref:'Cure'},performances:Array,startDate:Date,endDate:Date,validatee:Boolean,deleted:Boolean});我需要知道有多少文档有不同的ID,但我只需要那些startDate大于给定日期(例如今天)的文档。运行以下代码工作正常,但我想在map中添加一些字段以在查询中使用它们。varo={};o.map=fun

MongoDB 汇总所有前几周的每周总和

我在MongoDB中有一系列文档。一个示例文档是{createdAt:MonOct12201509:45:20GMT-0700(PDT),year:2015,week:41}想象一下,这些事件跨越一年中的所有几周,而且同一周内可能会有很多次事件。我想以这样一种方式汇总它们,即结果值是每周的总和以及之前所有周的总文档数。所以如果一年的第一周有10个,第二周有20个,结果可能是这样的[{week:1,total:10,weekTotal:10},{week:2,total:30,weekTotal:20}]创建一个聚合来查找weekTotal非常简单。包括显示第一部分的投影db.colle

Node.js/Mongoose/MongoDb Typescript MapReduce - emit() 和 Array.sum() 方法

我正在尝试使用MEAN堆栈和Typescript进行一个小项目,我似乎遇到了一个问题,即Typescript没有接受emit()和Array.sum()方法。下面是我的代码...letoptions:mongoose.ModelMapReduceOption={map:()=>{emit(this.customer,this.total);},reduce:(key,values)=>{returnArray.sum(values);},out:{replace:"map_reduce_customers"},verbose:true};我在NPM上使用typings包,并在我的项目中

arrays - MongoDB - 对数组参数元素进行操作查询

我是MongoDB的新手,我想弄清楚我是否可以使用MongoDB方便地执行此查询并获得良好的性能。我想将数字和数组参数传递给查询,并使用它们对集合中每个文档中的数组值逐个元素地执行操作。这可能吗?例如集合包含如下文档:{"name":"item1","m":5.2,"v":1.1,"data1":[0,0,0.3,0.7,0.95,0.9,0.75,0.4,0.1,0],"data2":[0,-1,0,1,1,0]}我还有另一个“搜索”文档,可能看起来像这样:{"x":8,"K":1,"dataA":[0,0,0,0,0,0,0,0.5,1,0.5],"dataB":[0,-2,0,1

javascript - MongoDB 集合上的 MapReduce 变空了

我一直在尝试将许多大型数据集整合到一个集合中,但我在编写MapReduce函数以实现这一点时遇到了问题。这是我的数据的样子(这里有17行,实际上我有4+百万行):{"user":1,"day":1,"type":"a","sum":10}{"user":1,"day":2,"type":"a","sum":32}{"user":1,"day":1,"type":"b","sum":11}{"user":2,"day":4,"type":"b","sum":2}{"user":1,"day":2,"type":"b","sum":1}{"user":1,"day":3,"type":"b

mongodb - 如何映射减少组、排序和计数排序值

我在使用mapreduce时遇到了一些问题。我想对集合中的一些值进行分组、排序和计数。我有这样的收藏:----------------------------|item_id|date|----------------------------|1|01/15/2012|----------------------------|2|01/01/2012|----------------------------|1|01/15/2012|----------------------------|1|01/01/2012|----------------------------|2|01/0

node.js - MongoDB 使用 Map/Reduce 将一个字段合并到现有集合中

我有一个包含2个集合的MongoDB数据库:组:{group_slug,成员}用户:{id、显示名称、组}对组的所有更改都是通过更改组的成员数组以包含用户ID来完成的。我想使用map/reduce将这些更改同步到用户集合。我如何将map/reduce的结果输出到现有集合中(但不合并或减少)。我现有的代码在这里:https://gist.github.com/morgante/5430907 最佳答案 HowcanIoutputtheresultsofmap/reduceintoanexistingcollection你真的不能这样做