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



我有一个MongoDB数据库,有两个集合:

  • groups: {group_slug, members}
  • users: {id,显示名,组}

对组的所有更改都是通过更改组的成员数组来包含用户id来完成的。

我想通过使用map/reduce将这些更改同步到users集合。如何将map/reduce的结果输出到现有集合(但不是合并或减少)。

我现有的代码在这里:https://gist.github.com/morgante/5430907

如何将map/reduce的结果输出到现有集合

你真的不能这样做。这也不是真正的建议行为。还有其他解决方案:

解决方案# 1:

  • 将map/reduce输出到临时集合
  • 运行从临时收集更新主数据存储的后续任务
  • 清理临时收集

老实说,这是一个安全的方法。您可以在整个循环中实现一些基本的重试逻辑。

解决方案2:

  • 将更改放到Queue中。()
  • 从侦听队列中此类事件的不同工作线程更新两个表。

这个解决方案可能需要一个单独的部分(队列),但是任何大型系统都会有这样的非规范化问题。所以你不只在这里看到这个

相关内容

  • 没有找到相关文章