「MongoDB 2.6」リリース、多くの新機能導入や機能強化を含む

 4月8日、オープンソースのドキュメントデータベース「MongoDB」の最新版となる「MongoDB 2.6」がリリースされた。クエリエンジンの書き直し、セキュリティや分析といった機能の強化などが特徴で、過去最大のリリースとしている。

 MongoDBはC++で実装されたドキュメント指向データベース。JSON由来の「BSON(Binary JSON)」形式でデータを扱うのが特徴で、スキーマレスでデータが持つ任意の属性に対するクエリや操作が行えるという特徴を持つ。自動シャーディングやMap/Reduceなどの機能も搭載している。ライセンスはAGPLv3で、サポート付きの有料サービスも提供する。

 MongoDB 2.6は2013年3月後半にリリースされた2.4に続く、1年ぶりのメジャーアップデートとなる。多くの変更が加わっており、「過去最大のリリース」とMongoDBの共同創業者兼CTOであるEliot Horowitz氏は述べている。これらにより拡張性、性能が強化され、次期2.8での並行処理に向けた土台作りを進めたという。

 大きな変更点としてはクエリ実行エンジンの再構築があり、1つ以上のインデックスに対応したクエリを実行するための「Index Intersection」がサポートされた。インデックスのフィルタリング機能、クエリプランキャッシュ機構なども加わった。

 データの書き込み/更新処理も大きく改善され、一括処理サポートが強化された。insertやupdate、deleteの処理が大きく変更され、機能も追加された。新たに$bitオペレータでxor処理がサポートされたほか、指定したフィールドの値が与えた値よりも小さい/大きいときのみに値を更新する$minおよび$max演算子や、現在の日時をセットする$currentDate演算子が追加された。$pushオペレータも強化されている。これら新機能はmongoシェルですでに利用できるほか、各言語向けの公式ドライバも新しいコマンドに対応するよう変更されているという。

 Aggregationも強化された。アグリゲーションパイプラインではdb.collection.aggregation()がカーソルを返すようになり、これまで16MBだったサイズ上限が無くなった。これにより、任意のサイズの結果セットを返すことが可能となったほか、アウトプットをコレクションとして書き出すこともできるようになった。アグリゲーションオペレーションの分析を支援するexplainをサポートし、外部ディスクを利用したソートプロセスも利用できるようになった。パイプラインステージとして、新たに$outと$redactをサポート、$map、$let、$literalなど既存のものも強化した。

 セキュリティも大きく改善されており、SSLサポートの強化、X.509ベースの認証(LDAP)、認証システムの強化などが加わった。LDAPではクライアント認証やクラスタ内部での認証として、X.509ベースの認証が可能となった。MongoDB公式のユーティリティツールであるMongoDBツールでもSSL接続を利用したmongodおよびmongosへの接続がサポートされたほか、起動時にユーザーにパスフレーズ入力のプロンプト表示が可能となった。

 このほか、テキスト検索がデフォルトで有効となり、テキストインデックスフォーマットが新しくなった。一方でtextコマンドは非推奨となった。インデックス構築、地理空間インデックスサポート、シャーディングとレプリケーション管理なども強化されている。

 MongoDB 2.6はプロジェクトのWebサイトより入手できる。

MongoDB
https://www.mongodb.org/