18

我想将聚合框架结果保存到新集合中。我知道目前使用命令本身的框架是不可能的。

shell中有解决方法吗?

4

3 回答 3

46

Mongo 2.6.0开始,您可以在本地执行此操作而无需任何额外操作。

db.<collection>.aggregate( [
     { <operation> },
     { <operation> },
     ...,
     { $out : "<output-collection>" }
] )

检查新的聚合运算符$out以获得更详细的示例。

使用这种方式的PS将不受 16Mb 大小的限制。

于 2013-10-25T23:08:33.857 回答
23

更新:有关在 MongoDB 2.6+ 中执行此操作的更有效方法,请参阅 Salvador 的答案


将聚合结果保存在变量中,然后将其result属性插入到新集合中:

var result = db.foo.aggregate(...);
db.bar.insert(result.result);
于 2012-11-28T18:47:10.580 回答
1

result.result 不再起作用,请尝试 toArray()。

var result  = db.coll.aggregate(...);
db.bar.insert(result.toArray());
于 2016-09-13T08:57:11.813 回答