草庐IT

reduce_sum

全部标签

mongodb - $lt 100 of $sum 使用聚合

我正在尝试使用$sum计算每个州的总数。然后使用$lt仅显示小于100的状态。每笔总和:db.zipcode.aggregate([{$group:{_id:"$state",count_of_cities:{$sum:1}}}])尝试显示小于100的总和:db.zipcode.aggregate([{$group:{_id:"$state"},less_than:{$cond:{if:{$lt:[$sum:1,100]}}}}])样本收集:{"_id":"01001","city":"AGAWAM","loc":[-72.622739,42.070206],"pop":15338,"

javascript - Mongodb $sum $cond 有两个条件

我有一个聚合查询,它返回为给定位置提交的评论的总和/总数(不是平均星级)。评论评分为1-5星。这个特定的查询将这些评论分为两类,“内部”和“谷歌”。我有一个查询返回的结果几乎是我正在寻找的结果。但是,我需要为内部审查添加一个附加条件。我想确保内部评论“stars”值存在/不为null并且包含至少1的值。所以,我想添加类似这样的东西会起作用:{"stars":{$gte:1}}这是当前聚合查询:[{$match:{createdAt:{$gte:fromDate,$lte:toDate}}},{$lookup:{from:'branches',localField:'branch',fo

python - 整数作为 Mongodb 中 Map Reduce 的键

我在Mongodb中有一个集合,如下所示:{_id:{"thread":"abc"},"value":1}{_id:{"thread":"cdf"},"value":1}{_id:{"thread":"edf"},"value":1}我尝试映射reduce尝试键入值,希望得到如下输出:{id_:{"value":1},value:3}map:function(){varkey={value:this.value};emit(key,1);};减少:function(key,values){varsum=0;values.forEach(function(value){sum+=valu

mongodb - Mongoid 3 - 访问 map_reduce 结果

在mongoid2中,这曾经有效:mr_collection=self.collection.map_reduce(map,reduce,{:query=>query,:finalize=>finalize,:out=>{:replace=>'mr_results'}})limit=(options[:limit]||10)skip=(options[:skip].to_i||nil)page=ifskip>=limit((skip+limit)/limit)else1endsort=ifoptions[:sort_by_vintage][['value.vy',:desc],['va

mongodb - 在哪里可以找到在 MongoDB 的 map/reduce 中使用的 emit() 函数实现?

我正在努力加深对MongoDB中map/reduce的理解。我认为完成此任务的最佳方法是查看emit的实际实现。我在哪里可以找到它?更好的是emit()的简单实现。在MongoDB文档中,他们展示了一种通过编写自己的代码来解决emit()问题的方法,但是他们提供的基本实现实在太基础了。我想了解分组是如何进行的。 最佳答案 我认为您要查找的定义位于此处:https://github.com/mongodb/mongo/blob/master/src/mongo/db/commands/mr.cpp#L886要完全理解正在发生的事情,还

MongoDb 聚合框架 - $sum 结果可以用在 $push 中吗?

是否可以将$sum的结果添加到分组数组中?类似于:{"$group":{_id:{ProductId:"$ProductId",Day:"$Day"},Products:{$push:{clicks:{$sum:"$clicks"}}}}}我想将$sum的计算值存储到一个数组中。这可以分组完成吗? 最佳答案 是的,您可以使用第二组运算符(operator)。db.collection.aggregate({$group:{_id:{ProductId:"$ProductId",Day:"$Day"},clicks:{$sum:"$c

MongoDB(Java): How to cancel map-reduce (or aggregate)

我是MongoDB世界的新手,我正在使用Java驱动程序(2.12)连接到MongoDB服务器(2.6)。是否有取消MapReduceCommand(或正在进行的.aggregate()操作)的方法?我没有在文档中找到任何内容。 最佳答案 我也不确定是否有直接的API方法,但像大多数mongo操作一样,这些实际上只是通过对“系统集合”进行类似的有线协议(protocol)操作来发挥作用。所以查找和取消的方法记录在db.currentOp()下和db.killOp().这些是shell实现方法,他们正在做的所有id访问下面的“系统集合

mongodb - 如何使用 Map/Reduce 和 MongoDB 对多个键进行分组?发出多个键?

在我的Rails3.2项目中,我使用MongoDB(Mongoid)使用map/reduce对一些结果进行分组,例如:defcount_and_group_by(context)raise"No#{context}attribute"unless%w(actionbrowsercountry).include?contextmap=%Q{function(){key=this.#{context};value={count:1};emit(key,value);}}reduce=%Q{function(key,values){varreducedValue={count:0};valu

mongodb mapreduce - 在reduce中构建一个数组或对象?

原始集合:{"_id":ObjectId('xxxxxxxxxxxxxxxx'),"userId":ObjectId('yyyyyyyyyyyyyyyy'),"urlId":ObjectId('zzzzzzzzzzzzzzzzzz')},{"_id":ObjectId('uuuuuuuuuuuuuuuuuu'),"userId":ObjectId('aaaaaaaaaaaaaaaa'),"urlId":ObjectId('zzzzzzzzzzzzzzzzzz')}发出:emit(this.urlId,{userId:this.userId,visitCount:this.visitCo

mongodb - mongo 上的这个 map-reduce 查询有什么问题?

请观察mongoshell:>mapfunctionmap(){if(this.server_location[0]==-77.0367){emit(this._id,this);}}>reducefunctionreduce(key,values){returnvalues[0];}>db.static.mapReduce(map,reduce,{out:'x',query:{client_location:{$near:[-75.5,41.89],$maxDistance:1}}}){"result":"x","timeMillis":43,"counts":{"input":10