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のリリースノート翻訳と所感
- リリース間近!MongoDB 2.6のリリースノート翻訳: 既存機能の変更点
- リリース間近!MongoDB 2.6のリリースノート翻訳: 新登場のWrite Commandたち
- リリース間近!MongoDB 2.6のリリースノート翻訳: 新機能と改善点
- リリース間近!MongoDB 2.6のリリースノート翻訳: エンタープライズ向け機能
目次
新機能
- アグリゲーションパイプラインの変更点
- db.collection.aggregation()が第2引数を取るようになりました
-
$out
ステージの追加 - アグリゲーションオペレーションはカーソルを返すようになりました
- アグリゲーションパイプライン用のexplainオプションの追加
- ソートに関する改善点
- フィールドレベルアクセスコントロールのフィルタリングを提供する
$redact
ステージの追加 - アグリゲーションパイプラインで、
$set
オペレーションのサポート -
$map
と$let
がアグリゲーションパイプラインで使えるようになりました -
$literal
がアグリゲーションパイプラインで使えるようになりました -
$cond
が引数としてObjectsを取れるようになりました - 新しい
$size
オペレーターがアグリゲーションパイプラインに追加されました
アグリゲーションパイプラインの変更点
db.collection.aggregation() が第2引数を取るようになりました
第2引数でoption
を設定可能です。
(訳注: option
ではexplain
,allowDiskUsage
,cursor
を指定可能になりました。)
詳細情報: db.collection.aggregate()
$out
ステージの追加
アグリゲーションパイプラインの結果をコレクションへ書き込む、$out
というステージが追加されました。
詳細情報: $out documentation
アグリゲーションオペレーションはカーソルを返すようになりました
mongoシェルのdb.collection.aggregate()
がカーソルを返すようになりました。カーソルを返すことによって、アグリゲーションパイプラインは、任意のサイズの結果セットを返すことができます。以前のバージョンでは、集計オペレーションの結果は、16メガバイトより大きくなることができませんでした。
詳細情報: db.collection.aggregate()
アグリゲーションパイプライン用のexplainオプションの追加
アグリゲーションのための新しいexplain
オプションは、mongodがパイプラインを処理する方法についての情報を提供します。
詳細情報: db.collection.aggregate(), aggregate
ソートに関する改善点
$sort
と$group
のパフォーマンスが改善され、より効率的なソーティングシステムを提供します。
また、新しく追加されたallowDiskUsage
オプションは一時ファイルにデータを書き込む処理段階を可能にします。
詳細情報: db.collection.aggregate(), aggregate
フィールドレベルアクセスコントロールのフィルタリングを提供する$redact
ステージの追加
$redact
ステージはパイプラインの結果をフィールドレベルで制限できます。
詳細情報: $redact
アグリゲーションパイプラインで、$set
オペレーションのサポート
$project
と$redact
が$setオペレーションをサポートしました。
$map
と$let
がアグリゲーションパイプラインで使えるようになりました
$map
と$let
によってアグリゲーションパイプラインで変数の宣言と操作が可能になりました。$project
, $group
, $redact
で使えます。
詳細情報: $let (aggregation), $map (aggregation)
$literal
がアグリゲーションパイプラインで使えるようになりました
新しい$literal
オペレーターで明示的に文字列を指定できるようになりました。
(訳注: “$”などのMongoDBで特別な意味を持つ文字列を使用する時に使います。)
詳細情報: $literal(aggregation)
$cond
が引数としてObjectを取れるようになりました
これまで$cond
はの引数は配列のみでしたが、Objectも取れるようになりました。
(訳注: $cond
はconditionの略で、引数にif文を入れることで返り値を変更できます。これまでは引数は配列で与えていましたが、document形式、つまりハッシュに対応しました。)
詳細情報:$cond(aggregation)
新しい$size
オペレーターがアグリゲーションパイプラインに追加されました
配列の要素数を返す$size
が追加されました。
詳細情報: $size(aggregation)