18

集計フレームワークの結果を新しいコレクションに保存したいと思います。現時点では、コマンド自体を使用するフレームワークではそれが不可能であることを私は知っています。

シェルに回避策はありますか?

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 に答える