0

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

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

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

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

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

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

4

1 回答 1

1

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

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

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

当然,据说 MongoDB 并非不可能做到这一点,而是它还没有实现。

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

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

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

如果这些文档是新文档并且您正在寻找一种聚合类型,您也可以使用 Map Reduce。我应该警告您,MR 并不是真正设计用于跨文档移动值,而是更多地用于制定聚合文档并将它们保存到集合中。

于 2013-01-29T10:22:11.117 回答