草庐IT

mapper-reducer

全部标签

ruby-on-rails - 如何在 mongo_mapper + Rails 中为每条记录设置单独的键

当我在mongodb中添加记录时,我可以指定任何我想要的键,它会将它存储在数据库中。问题是它会在我下次插入另一条记录时记住这些键。例如,如果我执行以下操作:Product.create:foo=>123然后Product.create:bar=>456我在第二条记录中得到:foo=>nil字段。这绝对不是mongodb本身的限制,因为如果我重新启动Rails控制台并创建另一条具有不同列集的记录,它不会添加第2条记录中的列。所以看起来mongomapper会记住所有使用的键并将它们插入all到all记录中,即使没有提供值也是如此。问题很明显:如何禁用这种疯狂的属性爆炸?基本上,我只希望我

mongodb - 用于分析时间序列的 Map Reduce

我是mapreduce概念的新手,想知道是否可以使用它解决以下问题。我们有一个这样的数据日志:TransIDDateOperationDocumentIDUser101/01/2010OpenaaaAnne201/11/2010CloseaaaAnne301/12/2010OpenbbbMary401/12/2010ClosebbbMary我们希望能够计算不同的时间指标,例如:全局平均打开和关闭操作之间经过多少时间?或每位用户平均打开和关闭之间经过多少时间?有没有一种简单的方法可以通过map-reduce实现这一点?我们正在考虑MongoDB或Hadoop。数据量可能很大——数十亿条记

mongodb - DBRefs vs Map/Reduce vs 手册引用

我遇到过三种“加入”集合的不同方式:手动保留对您希望加入目标集合的集合的“foreign-key-esk”引用使用DBRefs写一系列Map/Reduce维持关系的功能有人能解释一下每种方法的好处以及我应该在什么时候使用吗?我的第一印象是Map/Reduce用于大型、频繁使用的集合,而其他两个主要用于小型/快速查询。 最佳答案 抱歉回复晚了-这是一个用mongoose编写的嵌入式文档的简单示例:varpostSchema=newSchema({author:{type:String},title:{type:String,requi

mongodb - Map Reduce 上的 Reduce 函数显示不正确的结果——为什么?

我有一个数据结构可以跟踪不同城市的人://indb.persons{name:"John",city:"Seattle},{name:"Bill",city:"Portland"}我想运行mapreduce以获取每个城市中有多少人的列表,因此结果将如下所示:{_id:"Seattle",value:10}我的mapreduce函数如下所示:map=function(){varcity=this.cityemit(city,1);};reduce=function(key,values){varresult=0;values.forEach(function(value){result+

ruby-on-rails - 在 map reduce 之前对 mongoid 集合进行排序

我如何在对其执行mapreduce操作之前对集合进行排序?假设我有这个收藏:{a:1,b:1},{a:2,b:2},{a:3,b:e},{a:1,b:7}现在,我想按a的值排序并返回b的总和我只需要x结果(按a排序)。我如何按a排序第一的?在mongo我可以这样做:mapReduce(map,reduce,{sort:{a:1}})我怎样才能在mongoid上做到这一点?它只接受map_reduce的2个参数功能。 最佳答案 检查这个问题后,我发现了两种方法:1-使用native驱动程序,例如:db=Mongoid::Session

java - MongoDB 的 Map Reduce OutputType 之间的差异

我想使用MongoDB的MapReduce功能并访问大量数据。我正在使用INLINEOutputTypeMapReduceCommandcmd=newMapReduceCommand(dbCollection,MapReduceTest.map,MapReduceTest.reduce,null,MapReduceCommand.OutputType.INLINE,query);这在处理小数据集时工作正常,但它可用于处理高达16MB的数据,这对我来说是个问题。我想访问一个非常大的数据集,但我还没有找到任何关于其他选项MERGE、REDUCE、REPLACE的好文档。有谁知道区别吗?

javascript - 聚合或 Map Reduce 以创建规范化的 'Unique Paying Users Per Vendor'

我正在尝试使用MapReduce或Mongodb中的聚合框架为每个vendor的唯一付费用户创建一个报告。唯一的问题是总数需要标准化,这样每个用户在他/她购买的所有vendor中总共贡献1。例如{"account":"abc","vendor":"amazon",},{"account":"abc","vendor":"overstock",},{"account":"ccc","vendor":"overstock",}会产生{"vendor":"amazon","total":0.5},{"vendor":"overstock","total":1.5}在这里,我们看到用户“abc

string - MongoDB:使用 map-reduce 将字符串更改为整数

我是新来的,想问一个我一直面临的与mongodb相关的问题。这是一个记录的示例结构。{"_id":{"id":"lk23j","language":"English"},"class":"test","title":{"duration":"34""year":"1991"}}有几条这样的记录,我想在所有记录中计算持续时间的总和。据我了解,聚合不起作用,因为title.duration字段需要转换为整数,因此求和返回NaN(不是数字)。因此,我需要转换然后使用map-reduce求和,这将允许parseInt(在javascript中)。来自http://blog.physalix.c

MongoDB:在 Map Reduce 期间收集 E11000 重复键错误

我想计算数组的所有最后一个元素。该数组包含整数,可能为空。以下MapReduce示例在大型集合(>1000万个条目)上崩溃并出现重复键错误:varmap=function(){if(this.path.length>0){emit(this.path.slice(-1)[0],1);}};varreduce=function(id,values){varsum=0;values.forEach(function(value){sum+=value;});returnsum;};db.input.mapReduce(map,reduce,{out:'output'})Mongo版本是3.

mongodb - 如何在mongodb中对map reduce结果执行mapreduce

我想知道我是否可以像管道一样在mapreduce函数的结果上执行mapreduce而无需将其写入集合,谢谢大家。我的英语不好,希望你能理解我的问题:( 最佳答案 如果不在某种集合中存储中间数据,目前不支持mapreduce链接。MongoDB中的mapreduce效率不高,MongoDB建议导出数据并在必要时在Hadoop等适当的框架中运行mapreduce。 关于mongodb-如何在mongodb中对mapreduce结果执行mapreduce,我们在StackOverflow上找到