Docs Menu
Docs Home
/ /

VS Code で集計パイプラインを実行

VS Code 拡張機能 のコレクション集計パイプラインを実行できます。 集計パイプラインは、データを処理し、計算された結果を返すステージで構成されています。

集計の一般的な用途には、次のようなものがあります。

  • 特定の式でデータをグループ化します。

  • 複数のフィールドに基づいて結果を計算し、その結果を新しいフィールドに保存します。

  • データをフィルタリングして、指定された条件に一致するサブセットを返します。

  • データをソートします。

集計を実行すると、VS Code 拡張機能は Visual Studio Code 内で結果を直接出力できます。

MongoDB Playground では 集計パイプライン を実行できます。 MongoDB Playgrounds は、クエリ、集計、MongoDB コマンドのプロトタイプを作成でき、便利な構文強調表示機能を持つ JavaScript 環境です。

新しい MongoDB Playground を開くには:

1

Visual Studio Code で、次のいずれかのキーの組み合わせを押します。

  • Control + Shift + P Windows または Linux 上。

  • Command + Shift + P macOS 上。

Command Palette を使用すると、コマンドやキーボード ショートカットにすばやくアクセスできます。

2

コマンドを検索するには、 Command Palette検索バーを使用します。 VS Code 拡張機能に関連するすべてのコマンドの前にはMongoDB:が付きます。

MongoDB: Create MongoDB Playgroundコマンドを実行すると、VS Code 拡張機能によっていくつかのコマンドが事前構成されたデフォルトのプレイグラウンド テンプレートが開きます。

注意

テンプレートなしで新しいプレイグラウンドを読み込むには、 Use Default Template For Playground設定を無効にします。 VS Code 拡張設定の詳細については、「 Visual Studio Code 設定 」を参照してください。

集計パイプラインを作成するには、Playground で次の構文を使います。

db.<collection>.aggregate([
{
<$stage1>
},
{
<$stage2>
}
...
])

Playground を実行するには、Playground ビューの右上にある [ Play Button ] を押します。 VS Code 拡張機能は Playground を分割し、Playground の結果をPlayground Results.jsonペインに出力します。 分割ビューを無効にした場合、VS Code 拡張機能は Playground の結果を新しいタブに出力します。

この例を実行するには、空の MongoDB Playground から開始します。テンプレートの Playground がロードされている場合は、それをクリアします。

サンプル データをコレクションに挿入し、そのデータを集計する次のプレイグラウンドを検討してみましょう。

use("test");
db.sales.insertMany([
{ "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : new Date("2014-03-01T08:00:00Z") },
{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : new Date("2014-03-01T09:00:00Z") },
{ "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : new Date("2014-03-15T09:00:00Z") },
{ "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : new Date("2014-04-04T11:21:39.736Z") },
{ "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : new Date("2014-04-04T21:23:13.331Z") },
{ "_id" : 6, "item" : "def", "price" : 7.5, "quantity": 5, "date" : new Date("2015-06-04T05:08:13Z") },
{ "_id" : 7, "item" : "def", "price" : 7.5, "quantity": 10, "date" : new Date("2015-09-10T08:43:00Z") },
{ "_id" : 8, "item" : "abc", "price" : 10, "quantity" : 5, "date" : new Date("2016-02-06T20:20:13Z") }
])
db.sales.aggregate([
{ $match: { date: { $gte: new Date("2014-01-01"), $lt: new Date("2015-01-01") } } },
{ $group: { _id: "$item", totalSaleAmount: { $sum: { $multiply: [ "$price", "$quantity" ] } } } }
])

このパイプライン:

  1. test データベースに切り替えます。

  2. test.sales コレクションに 8 つのドキュメントを挿入します。

  3. 集計を 2 段階で実行します。


    第 1 ステージ
    $matchステージではデータがフィルタリングされ、 2014年の売上のみが次のステージに渡されます。
    第 2 ステージ
    $groupステージではデータが項目ごとにグループ化されます。 ステージでは、アイテムのpricequantityの合計であるtotalSaleAmountという新しいフィールドが出力に追加されます。

Play Buttonを押すと、VS Code 拡張機能によってプレイグラウンドが分割され、次のドキュメントがPlayground Results.jsonペインに出力されます。 分割ビューを無効にした場合、VS Code 拡張機能は次のドキュメントを新しいタブに出力します。

[
{
_id: 'abc',
totalSaleAmount: 120
},
{
_id: 'jkl',
totalSaleAmount: 20
},
{
_id: 'xyz',
totalSaleAmount: 150
}
]

Tip

戻る

削除

項目一覧