【问题标题】:assertion exception in mongo mapreducemongo mapreduce中的断言异常
【发布时间】:2013-12-13 02:13:36
【问题描述】:

我有一个存储搜索查询日志的集合。它的两个主要属性是 user_id 和 search_query。对于已注销的用户,user_id 为空。我正在尝试运行 mapreduce 作业以找出每个用户的计数和条款。

变体地图 = 函数(){ if(this.user_id !== null){ 发出(this.user_id,this.search_query); } } var reduce = 函数(id,查询){ 返回 Array.sum(查询 + ","); } db.searchhistories.mapReduce(地图, 减少, { 查询:{“时间”:{ $gte : ISODate("2013-10-26T14:40:00.000Z"), $lt : ISODate("2013-10-26T14:45:00.000Z") } }, 出:“mr2” } )

抛出以下异常

11 月 27 日星期三 06:00:07 未捕获的异常:map reduce failed:{ “errmsg”:“异常:断言 src/mongo/db/commands/mr.cpp:760”, “代码”:0, “好”:0 }

我查看了mr.cpp L#760,但无法收集任何重要信息。这可能是什么原因造成的?

我的收藏具有类似的值

> db.searchhistories.find() {“_id”:ObjectId(“5247a9e03815ef4a2a005d8b”),“结果”:82883,“response_time”:0.86,“时间”:ISODate(“2013-09-29T04:17:36.768Z”),“类型”:0, “user_id”:null,“search_query”:“宣传活动”} {“_id”:ObjectId(“5247a9e0606c791838005cba”),“结果”:39545,“response_time”:0.369,“时间”:ISODate(“2013-09-29T04:17:36.794Z”),“类型”:0, “user_id”:34225174,“search_query”:“eficaz eficiencia efectividad”}

【问题讨论】:

  • 这是哪个mongodb版本?
  • Mongo v2.2.1。我正在尝试在从节点上运行它。

标签: mongodb mapreduce


【解决方案1】:

查看文档我可以看到这在从属服务器中是不可能的。不过,它在主人身上会很好地工作。如果你仍然想使用从站,那么你必须使用下面的语法。

db.searchhistories.mapReduce(map, 
 reduce,
  {
    query: { "time" : {
                    $gte :  ISODate("2013-10-26T14:40:00.000Z"),
                    $lt  :  ISODate("2013-10-26T14:45:00.000Z")
                   }
       },
    out : { inline : 1 }
 }
)

** 使用内联函数时,请确保输出文档大小不超过 16MB 限制。

【讨论】:

  • "使用内联函数时,确保输出文档大小不超过 16MB 限制。"这是我的问题。通过输出到集合修复:out : 'myCollection'.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 2023-03-15
  • 2011-08-06
相关资源
最近更新 更多