如何将数组值从一个集合移动到另一个集合


How to move an array value from one collection to another collection?

我在一个集合中有一个数组值。我想将数组值从一个集合移动到另一个集合。

fruits : [ 
           { "apple","banana" } 
         ]

如何将此数组值值从一个集合移动到另一个集合?

我正在考虑这样做,从一个集合中获取值,将其存储在临时变量中,然后更新另一个集合以添加此临时变量。但我知道这不是一个简单的方法。

所以,我想知道有什么简单的方法可以做到这一点吗?

希望我的问题清楚。任何帮助将不胜感激。

我正在考虑这样做,从一个集合中获取值,将其存储在临时变量中,然后更新另一个集合以添加此临时变量。但我知道这不是一个简单的方法。

正如@sergio指出的那样。这很可能是最简单的方法。

MongoDB没有交叉集合更新,允许您在单个更新调用中完成所有这些操作(与SQL不同)。

当然,话虽如此,MongoDB并非不可能做到这一点,而是到目前为止还没有实现。

当然,建议不要经常做这种事情,否则您可能会遇到巨大的性能问题,特别是如果这些文档需要从其当前记录分配移动到新的记录分配(由于大小差异)。

考虑到您希望推送到另一个集合的内容是一个子文档,我也不建议使用聚合框架来创建可以轻松保存到替代集合的数据"显示"。这是因为数据已经预先形成,使用聚合框架只会使事情复杂化。

相反,我只会迭代源文档,获取值并简单地将它们推送到目标集合中的文档。

如果这些文档是新的,并且您希望执行某种类型的聚合,则还可以使用Map Reduce。我应该警告您,MR 并不是真正设计用于跨文档移动值,而是用于制定聚合文档并将它们保存到集合中。