我在一个集合中有一个数组值。我想将数组值从一个集合移动到另一个集合。
fruits : [
{ "apple","banana" }
]
如何将此数组值值从一个集合移动到另一个集合?
我想这样做,从一个集合中获取值,将其存储在临时变量中,然后更新另一个集合以添加此临时变量。但我知道这不是一个简单的方法。
所以,我想知道有没有简单的方法可以做到这一点?
希望我对我的问题很清楚。任何帮助将不胜感激。
答案 0 :(得分:1)
我想这样做,从一个集合中获取值,将其存储在临时变量中,然后更新另一个集合以添加此临时变量。但我知道这不是一个简单的方法。
正如@sergio指出的那样。这很可能是最简单的方式。
MongoDB没有交叉集合更新,允许您在单个更新调用中完成所有操作(与SQL不同)。
当然,据说MongoDB并非不可能做到这一点,而是因为它尚未实现。
当然,建议不要经常这样做,否则你可能会遇到大量的性能问题,特别是如果这些文件需要从他们当前的记录分配转移到新的(由于大小不同)。 / p>
考虑到你想要推送到另一个集合的是一个子文档我也不建议使用聚合框架来创建数据的“显示”,可以很容易地保存到备用集合中。这是因为数据已经预先形成,使用聚合框架只会使事情变得复杂。
相反,我只是迭代源文档,获取值并简单地将它们推送到目标集合中的文档。
如果这些文档是新的,并且您希望进行某种类型的聚合,那么您也可以使用Map Reduce。我应该警告你,MR的设计并不是为了在文档中移动值,而是为了制定聚合文档并将它们保存到集合中。