我想将聚合框架结果保存到新集合中。我知道目前使用命令本身的框架是不可能的。
shell中有解决方法吗?
从Mongo 2.6.0开始,您可以在本地执行此操作而无需任何额外操作。
db.<collection>.aggregate( [
{ <operation> },
{ <operation> },
...,
{ $out : "<output-collection>" }
] )
检查新的聚合运算符$out以获得更详细的示例。
使用这种方式的PS将不受 16Mb 大小的限制。
更新:有关在 MongoDB 2.6+ 中执行此操作的更有效方法,请参阅 Salvador 的答案。
将聚合结果保存在变量中,然后将其result
属性插入到新集合中:
var result = db.foo.aggregate(...);
db.bar.insert(result.result);
result.result 不再起作用,请尝试 toArray()。
var result = db.coll.aggregate(...);
db.bar.insert(result.toArray());