【问题标题】:MongoDb - Rejoining a split mapreduce taskMongoDb - 重新加入拆分 mapreduce 任务
【发布时间】:2011-12-29 17:56:42
【问题描述】:

我有一个 map reduce 函数,为了提高效率,它不应该立即运行。所以我根据一系列 id 拆分它,结果,我得到了一堆单独的集合。我现在想加入他们并结合所有 mapreduce 结果。结果表应该仍然只有一个键,以及一个包含组合临时表值的值数组。

我已经尝试在我的输出中使用“reduce”,以便更新现有表,但这不起作用:

res = db.People.mapReduce(m, r, {query:{xyz}, out:{reduce:"FoodPerPeople"}});

(edit) 它给了我嵌套数组:

{
  "_id" : "Banana",
  "value" : ["Bart", ["Joe"]]
}

我明白为什么会发生这种情况 - re-reduce 函数将输入的值数组视为本身的值。

我正在寻找的示例:

系列 1:

{
  "_id" : "Banana",
  "value" : ["Bart"]
}

系列 2:

{
  "_id" : "Banana",
  "value" : ["Joe"]
}

组合收藏:- 我如何获得这个?

{
  "_id" : "Banana",
  "value" : ["Bart", "Joe"]
}

【问题讨论】:

  • 你能澄清“这不起作用”吗?您是否收到错误或只是意外结果?
  • 谢谢。你也能展示你的 map 和 reduce 函数吗?
  • 我认为你需要展示你原来的 Map/Reduce 函数。您所描述的内容应该使用reduce 选项,但您的输出表明您的mapreduce 函数可能不正确。

标签: javascript mongodb mapreduce


【解决方案1】:

很可能您的 reduce 函数无法重新归约已归约的数据。您应该阅读此technical explanation 并尝试使您的 reduce 函数符合此条件。

【讨论】:

    猜你喜欢
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    相关资源
    最近更新 更多