草庐IT

reduce_dim

全部标签

mongodb - 如何计算mongo reduce函数中两个字段的计数和唯一计数

我有一个链接跟踪表,其中包含(在其他字段中)track_redirect和track_userid。我想输出给定链接的总计数,以及唯一计数-按用户ID计算重复项。因此我们可以区分某人是否点击了同一个链接5次。我已经尝试在键和值部分发出this.track_userid但无法掌握如何在reduce函数中正确访问它们。所以如果我回滚到它实际工作的时候,我有下面非常简单的代码-就像在“我的第一个mapreduce函数”示例中一样mapfunction(){if(this.track_redirect){emit(this.track_redirect,1);}}减少function(k,va

MongoDB。 Map-Reduce finalize 函数

我想通过按日期累积来计算用户。我有以下map减少功能:varm=function(){//creationdatevard=newDate(parseInt(this._id.toString().slice(0,8),16)*1000);//ticksvart=d.getTime();emit(d2,d3);};varr=function(k,v){returnv[0];//justgonextwithticks};varopts={out:{merge:"UserAccum",db:"Metric"},finalize:function(k,v){varstr="parseInt(

mongodb - 在 MongoDB map-reduce 中计算距离

我有一个带有地理索引的MongoDB集合:>db.coll.getIndexes()[//...{"v":1,"key":{"location":"2dsphere"},"ns":"test.coll","dropDups":false,"name":"location_2dsphere","background":false}]db.coll.findOne({location:{'$exists':true}},{'location':1}){"_id":ObjectId("52cd72ae2ac170aa3eaace6e"),"location":[55.4545177559,1

mongodb - 在 MongoDB 的 map reduce 中访问另一个集合

我想从map函数访问另一个集合,这样我就可以查找键并执行一些聚合。我可以使用db.collection_name或BSON代码中的类似内容访问任何集合吗? 最佳答案 如果您在本地尝试此操作,它将起作用。但是,这在分片场景中完全失败,因为集合或集合中的数据不会在分片本地。这也是不好的做法,因为M/R会导致难以追踪的级联查询。如果您遇到这个问题,您有几个选择:非规范化数据:如果map集合A需要来自集合x,y,z的字段B,然后将这些字段复制到A。是的,它没有规范化,但MongoDB不是关系数据库,它不打算规范化。多部分M/R:在许多情况下

MongoDB Map/Reduce 增量式自适应查询

我对要增量聚合的数据有疑问。我有设备(很多,存储在设备集合中)发出测量值(不定期),这些测量值存储在记录集合的数据库中。每条记录都有一个timestamp_utc,它不是存储数据的时间戳,而是测量位置。(完全不同,因为设备发送了一堆措施)我想要的是为每个不同的设备增量地进行不同规模的批处理数据聚合(MapReduce)。例如,我想要一个平均每5分钟测量一次的集合,每30分钟一次,......每天等等......我不想每次都处理整个数据,而只想处理新条目。例如:记录集合包含:{_id:{device1,time:ISODate(2011-10-12T13:50:01Z)},value:{

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

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

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

Javascript 作用域规则和 mongo map/reduce 函数

我想制作一些在mongo中执行参数化映射/归约作业的javascript函数,但我对JavaScript的范围界定感到困惑。例如,下面的代码给出了"gender"变量的计数;即它会告诉我有多少"male"和"female"记录://countcategoriesdb.responses.mapReduce(function(){emit(this["gender"],{count:1})},function(state,values){varresult={count:0};values.forEach(function(value){result.count+=value.count

mongoDB 如何杀死/终止 map_reduce 作业?

我不确定这是否可行,但想知道我们是否有解决此问题的方法。我定义了一个map_reduce作业(已采取额外措施进行增量查询,以便数据集最小化)如果需要很长时间我想使用pymongoAPI或在mongoDBshell中终止作业……并且也优雅地删除所有临时表。这能做到吗? 最佳答案 在终止操作方面,您需要的是currentOp()找到操作ID,然后使用killOp()命令终止操作壳。详情请看这里:http://www.mongodb.org/display/DOCS/Viewing+and+Terminating+Current+Oper