草庐IT

mongodb - 在 MongoDB 中限制 group() 的结果

在MongoDB中使用group()时如何限制结果数?基本上我正在寻找这个MySQL查询的等效项:SELECT*FROMitemsGROUPBYtypeLIMIT5;编辑:我刚刚意识到这可以通过Map/Reduce完成,但我读到在单个服务器(我的案例)上使用Map/Reduce有点矫枉过正。是真的吗?最终,实现我需要的最佳方法是什么? 最佳答案 group的问题在于它不会真正做到这一点。它只是返回所有组的数组。您可以使用Map/Reduce来解决这个问题:发布Map/Reduce(进入临时或永久集合)在返回的游标上使用.limit(

mongodb - MapReduce 与 MongoDB - reduce 运行了多少次?

我在MongoDB中使用MapReduce,我想我已经全神贯注了,除了有一点我仍然不明白:reduce运行了多少次?例如,我有一个“项目”集合,每个项目都有一个“类别”。这是测试数据(用javascript编写,用于node.js单元测试):vari=0;vardummyCategories=[{categoryId:(++i),categoryName:'Category'+i},//[0]1{categoryId:(++i),categoryName:'Category'+i},//[1]2{categoryId:(++i),categoryName:'Category'+i},/

MongoDB MapReduce 每个键有很多 emit()

是否保证将同一键的所有emit()发送到reduce函数?例如,如果您有100万个文档,每个文档emit()一次,但只有10个可能的emit()键(均匀分布),则减少函数在一次调用中被100k发射猛烈撞击?或者mongo会将这些拆分并逐渐减少结果?如果是这样,它如何决定将多少值发送到reduce? 最佳答案 同一个键的所有emit()都将被发送到reduce函数,但它们不一定会立即发送到reduce函数(如果为特定键发出单个文档,文档不会传递给reduce函数)。可能会针对同一个键多次调用Reduce,这就是为什么reduce函数的

mongodb - Mongo 2.4 - 使 db 对象在服务器端代码中可用(map/reduce)

我们从2.0开始使用Mongo。作为我们经常运行的查询的一部分,我们运行map/reduce作业,这些作业在执行这些作业时还会从其他集合中提取数据。自mongo2.4起,此功能已被删除(http://docs.mongodb.org/manual/release-notes/2.4/#additional-limitations-for-map-reduce-and-where-operations),唯一的建议是“重构您的代码”。那么,有没有办法重构代码呢?我知道这是一个一般性问题,但我要求的是一般性申请。涉及的集合和交叉查询的大小和用途已经足够多样化。在这一点上,我什至会采取一个补

mongodb - 不使用 map/reduce 在 mongodb 中联合查询

如何为mongo转换以下SQL查询:SELECTcolumn1fromtable1UNIONSELECTcolumn1fromtable2我有多达12个集合,每个月一个:data.2013.01data.2013.02......data.2013.12绘图时,我想一次在图表上显示多个月份。这就引出了一个问题,如何在mongo中创建UNION。 最佳答案 我认为您最终会得出的结论是您的架构不正确。将所有具有相同目的和形状的对象放入一个集合中。这就是如何与mongodb协调工作。按月收集是一个错误,会导致您与mongo进行无休止的不必

mongodb - MongoDB 的 Map/Reduce 排序有用吗?

如果使用下面的Analytic.collection.map_reduce(map,reduce,:query=>{:page=>subclass_name},:sort=>[[:pageviews,Mongo::DESCENDING]]).find.to_a它不会按pageviews排序。或者,如果它是哈希数组:Analytic.collection.map_reduce(map,reduce,:query=>{:page=>subclass_name},:sort=>[{:pageviews=>Mongo::DESCENDING}]).find.to_a也不行。我认为它必须是一个数

MongoDB:使用 Map/Reduce 聚合数据

我仍然不完全理解map/reduce是如何工作的,所以我想举一个我需要解决的问题的例子,希望答案能帮助我理解这个概念。我正在使用与此类似的文档结构来跟踪页面浏览量:{"timestamp":1299990045,"visitor":{"region":{"country_code":"US",},"browser":{"name":"IE","version":"8.0",}},"referer":{"host":"www.google.com","path":"/","query":"q=map%2Freduce"}}我为每个页面View存储一个文档。因为我每天获得大约1500万的页

mongodb - Mongo 用户定义函数和 Map Reduce

在mongo中有没有一种方法可以创建用户定义的Javascript函数。我在客户端有几个Map/Reduce函数,我想在其他MR函数中使用它们。例如,几个MR函数计算各种平均值。我希望能够像这样使用它们:functionreduce(k,v){if(val>myDatabaseAverage())//..dosomething} 最佳答案 使用db.system.js.save({_id:"myDatabaseAverage",value:function(){//..dosomething}});这会将JS函数存储在服务器上,并且

mongodb - 异常 : cannot run map reduce without the js engine

我正在尝试对MongoDB集合运行map/reduce查询,但出现以下错误:uncaughtexception:mapreducefailed:{"errmsg":"exception:cannotrunmapreducewithoutthejsengine","code":16149,"ok":0}我似乎无法在谷歌上为它打开任何东西。我试过搜索异常消息,但似乎没有人写过它。我怀疑这可能是一个特权问题,但找不到相关的特权。我没有设置实例,所以是否有某种配置选项可以禁用js引擎,或者可能是内存限制或其他什么? 最佳答案 我们的系统也有

python - 如何在没有 map/reduce 的情况下转换大型 Mongodb 集合中的每个文档?

对于冗长的描述,我们深表歉意。我想对一个大型Mongodb集合中的每个文档运行一个转换,其中包含1000万条记录,大约10G。具体来说,我想对每个文档中的ip字段应用一个geoip转换,然后将结果记录附加到该文档,或者只是创建一个通过sayid链接到该文档的其他记录(链接并不重要,我可以创建一个整个单独的记录)。然后我想按城市进行计数和分组-(我确实知道如何做最后一部分)。我认为我不能使用map-reduce的主要原因是我不能在我的map函数中调用geoip库(或者至少这是我认为存在的约束)。所以我的核心问题是如何遍历集合中的每条记录并应用转换-使用最有效的方法来做到这一点。通过Lim