将mongodb聚合框架结果导出到新集合

时间:2012-11-28 18:32:55

标签: mongodb aggregation-framework

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

shell中有解决方法吗?

3 个答案:

答案 0 :(得分:39)

Mongo 2.6.0 开始,您可以本机执行此操作,无需任何其他操作。

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

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

使用这种方式

P.S。您不限于16Mb大小。

答案 1 :(得分:21)

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


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

var result = db.foo.aggregate(...);
db.bar.insert(result.result);

答案 2 :(得分:1)

result.result不再有效,请尝试使用()。

var result  = db.coll.aggregate(...);
db.bar.insert(result.toArray());