gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:14:27 26 4
gpt4 key购买 nike

我有一个包含 2 个集合的 MongoDB 数据库:

  • 组:{ group_slug, 成员}
  • 用户:{ id、显示名称、组}

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

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

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

最佳答案

How can I output the results of map/reduce into an existing collection

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

解决方案 #1:

  • 将 map/reduce 输出到一个临时集合中
  • 运行后续任务,根据临时集合更新主数据存储
  • 清理临时集合

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

解决方案#2:

  • 将更改放入队列。 (即“用户订阅群组”)
  • 从正在监听队列中此类事件的独立工作人员更新两个表。

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

关于node.js - MongoDB 使用 Map/Reduce 将一个字段合并到现有集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16135709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com