BT

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

MongoDBのGroup By

This item in chinese

ブックマーク

原文(投稿日: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のグループ化処理により近い。結果セットはフラットな行ではなくネストした構造体だ。従って、カウントや平均などの集約された情報が実際にグループ化されたドキュメントとともに得られる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。