我想将聚合框架结果保存到新集合中。 我知道目前使用命令本身的框架是不可能的。
shell中有解决方法吗?
答案 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());