リリース間近！MongoDB 2.6のリリースノート翻訳: Aggregation Pipelineの変更点


MongoDB Advent Calendarの穴埋め用投稿です。

そろそろリリースされそうなMongoDB 2.6のリリースノートの一部を翻訳しました。小出しになってあれですが、今回はAggregation Pipelineの変更点です。

次回は2.6で大きく変わった書き込みオペレーションの変更点を翻訳します。

注：MongoDB 2.6は年内リリース予定です。

元のリリースノートはこちら
http://docs.mongodb.org/master/release-notes/2.6/

他の翻訳

- [まとめ！MongoDB 2.6のリリースノート翻訳と所感](http://qiita.com/syokenz/items/a0be8a8bc8b79d471ccf)
- [リリース間近！MongoDB 2.6のリリースノート翻訳: 既存機能の変更点](http://qiita.com/syokenz/items/8a261ccead180b3e3243)
- [リリース間近！MongoDB 2.6のリリースノート翻訳: 新登場のWrite Commandたち](http://qiita.com/syokenz/items/98feb3fe8511b78d8a2d)
- [リリース間近！MongoDB 2.6のリリースノート翻訳: 新機能と改善点](http://qiita.com/syokenz/items/50af0aee28c8adf0ae13)
- [リリース間近！MongoDB 2.6のリリースノート翻訳: エンタープライズ向け機能](http://qiita.com/syokenz/items/c3e4c5ec94152365c7d3)


## 目次

### 新機能
- アグリゲーションパイプラインの変更点
 - db.collection.aggregation()が第２引数を取るようになりました
 - <code>$out</code>ステージの追加
 - アグリゲーションオペレーションはカーソルを返すようになりました
 - アグリゲーションパイプライン用のexplainオプションの追加
 - ソートに関する改善点
 - フィールドレベルアクセスコントロールのフィルタリングを提供する<code>$redact</code>ステージの追加
 - アグリゲーションパイプラインで、<code>$set</code>オペレーションのサポート
 - <code>$map</code>と<code>$let</code>がアグリゲーションパイプラインで使えるようになりました
 - <code>$literal</code>がアグリゲーションパイプラインで使えるようになりました
 - <code>$cond</code>が引数としてObjectsを取れるようになりました
 - 新しい<code>$size</code>オペレーターがアグリゲーションパイプラインに追加されました


## アグリゲーションパイプラインの変更点

### db.collection.aggregation() が第２引数を取るようになりました

第2引数で<code>option</code>を設定可能です。
(訳注: <code>option</code>では<code>explain</code>,<code>allowDiskUsage</code>,<code>cursor</code>を指定可能になりました。)

詳細情報: [db.collection.aggregate()](http://docs.mongodb.org/master/reference/method/db.collection.aggregate/#db.collection.aggregate)

### <code>$out</code>ステージの追加

アグリゲーションパイプラインの結果をコレクションへ書き込む、<code>$out</code>というステージが追加されました。

詳細情報: [$out documentation ](http://docs.mongodb.org/master/reference/operator/aggregation/out/)

### アグリゲーションオペレーションはカーソルを返すようになりました

mongoシェルの<code>db.collection.aggregate()</code>がカーソルを返すようになりました。カーソルを返すことによって、アグリゲーションパイプラインは、任意のサイズの結果セットを返すことができます。以前のバージョンでは、集計オペレーションの結果は、16メガバイトより大きくなることができませんでした。 

詳細情報: [db.collection.aggregate()](http://docs.mongodb.org/master/reference/method/db.collection.aggregate/#db.collection.aggregate)


### アグリゲーションパイプライン用のexplainオプションの追加

アグリゲーションのための新しい<code>explain</code>オプションは、mongodがパイプラインを処理する方法についての情報を提供します。

詳細情報: [db.collection.aggregate()](http://docs.mongodb.org/master/reference/method/db.collection.aggregate/#db.collection.aggregate), [aggregate](http://docs.mongodb.org/master/reference/command/aggregate/#dbcmd.aggregate)

### ソートに関する改善点

<code>$sort</code>と<code>$group</code>のパフォーマンスが改善され、より効率的なソーティングシステムを提供します。
また、新しく追加された<code>allowDiskUsage</code>オプションは一時ファイルにデータを書き込む処理段階を可能にします。

詳細情報: [db.collection.aggregate()](http://docs.mongodb.org/master/reference/method/db.collection.aggregate/#db.collection.aggregate), [aggregate](http://docs.mongodb.org/master/reference/command/aggregate/#dbcmd.aggregate)


### フィールドレベルアクセスコントロールのフィルタリングを提供する<code>$redact</code>ステージの追加

<code>$redact</code>ステージはパイプラインの結果をフィールドレベルで制限できます。

詳細情報: [$redact](http://docs.mongodb.org/master/reference/operator/aggregation/redact/#pipe._S_redact)

### アグリゲーションパイプラインで、<code>$set</code>オペレーションのサポート

<code>$project</code>と<code>$redact</code>が[$setオペレーション](http://docs.mongodb.org/master/reference/operator/aggregation-set/)をサポートしました。

### <code>$map</code>と<code>$let</code>がアグリゲーションパイプラインで使えるようになりました

<code>$map</code>と<code>$let</code>によってアグリゲーションパイプラインで変数の宣言と操作が可能になりました。<code>$project</code>, <code>$group</code>, <code>$redact</code>で使えます。


詳細情報: [$let (aggregation)](http://docs.mongodb.org/master/reference/operator/aggregation/let/), [$map (aggregation)](http://docs.mongodb.org/master/reference/operator/aggregation/map/)


### <code>$literal</code>がアグリゲーションパイプラインで使えるようになりました

新しい<code>$literal</code>オペレーターで明示的に文字列を指定できるようになりました。
(訳注: “$”などのMongoDBで特別な意味を持つ文字列を使用する時に使います。)

詳細情報: [$literal(aggregation)](http://docs.mongodb.org/master/reference/operator/aggregation/literal/) 



### <code>$cond</code>が引数としてObjectを取れるようになりました

これまで<code>$cond</code>はの引数は配列のみでしたが、Objectも取れるようになりました。

(訳注: <code>$cond</code>はconditionの略で、引数にif文を入れることで返り値を変更できます。これまでは引数は配列で与えていましたが、document形式、つまりハッシュに対応しました。)


詳細情報:[$cond(aggregation)](http://docs.mongodb.org/master/reference/operator/aggregation/cond/)


### 新しい<code>$size</code>オペレーターがアグリゲーションパイプラインに追加されました

配列の要素数を返す<code>$size</code>が追加されました。

詳細情報: [$size(aggregation)](http://docs.mongodb.org/master/reference/operator/aggregation/size/)