MongoDBでの集約:パイプラインと構文

公開: 2020-09-23

目次

序章

MongoDBは、大量のデータストレージメディアの一種です。 これは、ドキュメントクエリを使用する非リレーショナルデータベースとして機能します。 MongoDBの基本単位は、MongoDBコレクション内のドキュメントのキーと値のペアです。 2000年代初頭から非常に有益な媒体になりました。

MongoDBの集約は、1つ以上のMongoDBコレクション内のドキュメントに対してさまざまな計算タスクを実行できるようにするフレームワークです。 これは、さまざまなドキュメントから解釈するためのレポートまたは少数のデータメトリックを生成する効果的な方法です。 このフレームワークは、複数のドキュメントを集約して統合された結果を形成するため、MongoDBと呼ばれます。

MongoDB集計には、主にパイプラインフレームワークが含まれています。 パイプラインの基本的な基本概念は、入力がMongoDBコレクションから取得され、ドキュメントが一連のステージを通過して、最終的に統合された出力を生成することです。 この考え方は、Linuxパイプラインの概念、つまりBashと非常によく似ています。

MongoDBの主な機能

このデータベースシステムが広く使用されている理由はたくさんあります。 いくつかの特別な機能を以下に示します。

  • NoSQLデータベースであるMongoDBは、非常に柔軟に使用できます。 それはドキュメント指向です。
  • キーと値のペアは、ドキュメント内のフィールドにインデックスを付けることができます。 これは、MongoDBの非常に特別な機能です。
  • MongoDBは、シャーディングの概念を使用して、大きなデータセットを小さなインスタンスに分割します。 このようにして、インスタンスのバランスを保ちながら、多くのサーバーで実行できます。
  • MongoDBのクエリは、ドキュメント内の特定のフィールドを返すことができます。

読む: MongoDBプロジェクトのアイデアとトピック

MongoDBのアグリゲーションが役立つのはなぜですか?

何百万もの埋め込みファイルの処理が必要になる場合があります。 ただし、これによりサーバースタックでオーバーフローが発生し、プロセスが終了する可能性があります。 多数の埋め込みファイルを処理するという制約により、ファイルを関連付けることでスキャンプロセスが強化されました。

したがって、集計操作は、さまざまな段階でドキュメントを計算し、結果として累積効果を示して返すように設計されています。 結果生成のマッチング技術は、膨大な数のファイルの問題に革命をもたらしました。 したがって、集約フレームワークは不可欠です。

このフレームワークは、異なるファイルに対して同時に多くのクエリ操作を実行できます。 これは、リレーショナルデータベースクエリと非常によく似ています。

チェックアウト:最も一般的なMongoDBコマンド

アグリゲーションパイプラインとは何ですか?

パイプラインは、1つの統一された目標を一緒に解決する個別のタスクを実行するように設計された連続ステージのフレームワークです。 ここMongoDBAggregationでは、このフレームワークが計算プロセスを提供し、ドキュメントを操作します。 MongoDBコレクションからの多くのドキュメントが入力として提供され、方法論に固有のものです。 特定のタスクが各段階で実行されます。

その後、すべての結果がまとめて統合され、累積メトリックが計算され、出力として表示されます。 出力は、リレーショナルデータベースから提供されるクエリ出力、つまり、追加で機能するドキュメントのストリームと非常によく似ています。 後で、それはウェブサイト作成のレポート生成で使用することができます。

したがって、ここでは各ステージが処理ユニットとして機能します。 すべての内部ステージで、前のステージからの出力が入力として機能します。 また、初期段階でフィルターを追加することもできます。 多くの場合、ステージは多くのハイパーパラメータを使用して設計されます。 この目的のために、いくつかのノブまたはチューニングボタンがそれらを制御するために提供されています。 これらのハイパーパラメータを変更すると、そのステージの結果に影響します。 これにより、実行したいタスクがパラメーター化されました。 このようにして、ステージは一般的なタスクを実行します。

特定のパイプラインに同様のタイプのステージを複数回含めたい場合があります。 たとえば、コレクション全体を通過させないように、最初の部分にフィルターが存在する場合があります。 しかし、後で、いくつかの処理の後、別の基準のために別のフィルターが必要になる場合があります。

構文

集計クエリが作成される特定の形式があります。 コードの構文と形式を以下に示します。

db.Collection_Name.aggregate([

{$ match:{“ _id_field _”:value}}

{$ group:{“ _id_field _”:value}}

{$ sort:{“ _id_field _”:value}}

]);

パイプラインコマンド

  • 構造コマンド:構造コマンドは、ドキュメントを整理し、データ操作操作に適したものにするのに役立ちます。 非常に頻繁に使用される2つの主要な構造コマンドがあります。
  1. マッチング:これはフィルタリング段階です。 この段階では、気にしないドキュメントを切り取ります。 このコマンドは、SQLのWHERE関数によく似ています。

db.customers.aggregate([

{$ match:{“ zip”:700068}}

]);

上記のコードは、MongoDBコレクションから700068郵便番号に住むすべての顧客のドキュメントを返します。

1.グループ化:ドキュメントをフィルタリングした後、特定のグループ化が必要になります。 これにより、コレクション全体のサブセットを形成できます。 また、ドキュメントは同様の共通点に基づいてクラスター化できます。 クラスタリングは、それらに対して同様の操作を一緒に実行するのに役立ちます。

db.customers.aggregate([

{$ match:{“ zip”:700068}}

{{

$ group:{

_id:null、

カウント: {

$ sum:1

}

}

]);

$ groupを使用すると、ドキュメントのクラスタリングで変換操作を実行できます。 _idコマンドは、データのフィールドの保持を処理します。

2.並べ替え:これは、特定のクエリフィールドに基づいてドキュメントを昇順または降順で並べ替えるのに役立ちます。

db.customers.aggregate([

{$ match:{“ zip”:700068}}

{{

$ group:{

_id:null、

カウント: {

$ sum:1

}

}

{{

$ sort:{

{「zip」:-1}

}

}

]);

これにより、郵便番号に基づいてドキュメントが並べ替えられます。

  • 操作コマンドMongoDB Aggregationには、データタスクの実行に役立つ多くの操作コマンドがあります最も重要なコマンドのいくつかを以下に説明します。
  1. Summation($ sum) :ドキュメントからすべての値の加算を返します。
  2. Maximum($ max) :すべてのドキュメントから特定の変数の最大値を出力します。
  3. 最小($ min) :変数の最小値を返します。
  4. 平均($ avg) :各ドキュメントの値の平均を計算します。
  5. Push($ push) :配列に値を追加します。
  6. First($ first) :コレクションから最初のドキュメントを返します。
  7. Last($ last) :コレクションから最後のドキュメントを返します。
  8. セットに追加($ addToSet) :ドキュメントの配列に値を複製せずに追加します。

また読む: MongoDBの将来の範囲

まとめ

ビッグデータのこの時代では、非リレーショナルデータベースは大規模なサンプルセットを処理するのに非常に役立ちます。 今日、データサイエンスと開発の分野は、MongoDBの使用によく慣れています。 このフレームワークは、Java、JavaScript、Python、および他の多くの言語などの一般的な言語で使用できます。 MongoDBの知識と、集約フレームワークを備えた健全なハンドを持つことで、夢のキャリアを築くことができます。

すでにMongoDBに興味を持っている場合 集約していくつかのオンラインコースを探し、ビッグデータプログラムのソフトウェア開発スペシャライゼーションのPGディプロマをチェックしてください。これは、働く専門家向けに設計され、7つ以上のケーススタディとプロジェクトを提供し、14のプログラミング言語とツール、実践的なハンズオンワークショップなどをカバーしています。トップ企業との400時間以上の厳格な学習と就職支援。

その場合、このコースは、データ構造とアルゴリズム、Javaプログラミング、データベースの基盤、HTML、CSS、JavaScript、Angular、Java、オブジェクト指向分析と設計に関するすべての知識を習得するのに役立ちます。

250時間以上のオンライン教育、業界の専門家との1対1のセッション、およびこのコースではさらに多くのことが利用できます。 これに加えて、コースはupGradの対象分野の専門家によってキュレーションされ、トップIT企業、製品ベースの企業、および新興企業からの配置の機会が提供されます。

世界のトップ大学からオンラインでソフトウェア開発コース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

データ主導の技術革命をリードする

IIITバンガロアからのビッグデータの高度な証明書プログラム