BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース MongoDBのGroup By

MongoDBのGroup By

ブックマーク

原文(投稿日:2012/02/17)へのリンク

馴染みのあるデータアクセス方法を求める声に答えて、MongoDBがAggregation Frameworkを導入しようとしている。このライブラリは宣言的なパイプライン記法でSQLのようなgroup by処理を記述できる。JavaScriptでカスタムの処理を書く必要がなくなるのだ。

このフレームワークでは“aggregate”節の後に、ほとんどの場合、“$match”節でパイプライン処理を始める。これらの処理はSQLのfromやwhere節、あるいはMongoDBのfind関数のように働く。次に来るのは“$project”節で、これもSQLやMongoDBにとても似ている(ただし、SQLとは違いこの節は式の最後になければならない)。

次の処理はMongoDBのAggregation Frameworkに特有だ。多くのリレーショナルデータベースとは違い、MongoDBは配列を行/ドキュメントにそのまま保存できる。これは単純なアクセスでは便利だが、射影やグループ化、フィルタリングが必要なレポートを作成する場合はとても複雑になる。“$unwind”節は配列を単一の要素毎に、ドキュメントの残りの部分とともに返してくれる。

“$group”処理はSQLのGroup Byと同じだ。しかし、LINQのグループ化処理により近い。結果セットはフラットな行ではなくネストした構造体だ。従って、カウントや平均などの集約された情報が実際にグループ化されたドキュメントとともに得られる。

この記事に星をつける

おすすめ度
スタイル

BT