MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBでビューを作成する方法:createView()の使い方を解説

MongoDBでビューを作成するには

MongoDBでビュー(View)を作成するには、createView()メソッドを使用します。ビューとは、既存のコレクションに対する集計パイプラインの結果を読み取り専用で表示する仮想的なコレクションのことです。元データを変更せずに、必要なフィールドだけを抽出して扱えるのが大きなメリットです。

まずは、ドキュメントを含むコレクションを作成してみましょう。

> db.demo113.insertOne(
... { _id: 1, StudentId: "101", "Details": { Name: "Chris", Age: 21 }, Subject: "MySQL" }
... );
{ "acknowledged" : true, "insertedId" : 1 }

次に、find()メソッドを使って、コレクション内のすべてのドキュメントを表示します。

> db.demo113.find().pretty();

実行すると、以下のような出力が得られます。

{
    "_id" : 1,
    "StudentId" : "101",
    "Details" : {
        "Name" : "Chris",
        "Age" : 21
    },
    "Subject" : "MySQL"
}

createView()でビューを作成する

続いて、MongoDBでビューを作成するためのクエリを見ていきましょう。createView()には「ビュー名」「元となるコレクション名」「集計パイプライン」の3つの引数を指定します。

> db.createView(
...     "firstView",
...     "demo113",
...     [ { $project: { "Name": "$Details.Name", Subject: 1 } } ]
... )
{ "ok" : 1 }

この例では、$projectステージを使って、ネストされたDetails.NameフィールドをNameとして取り出し、Subjectフィールドも一緒に表示するように設定しています。

作成したビューからデータを取得する

ビューが作成できたら、通常のコレクションと同じようにfind()メソッドでフィールドを表示できます。

> db.firstView.find();

実行結果は以下の通りです。

{ "_id" : 1, "Subject" : "MySQL", "Name" : "Chris" }

このように、元のコレクションには存在しない形でデータを整形して参照できるのが、MongoDBのビューの便利な点です。頻繁に使う集計クエリをビューとして定義しておけば、コードの再利用性も高まります。

  1. MongoDBの_idフィールドを非表示にする方法

    MongoDBの_idフィールドを非表示にする方法MongoDBでは、find()メソッドでドキュメントを検索すると、デフォルトで_idフィールド(ObjectId)が必ず結果に含まれます。しかし、射影(プロジェクション)という仕組みを使えば、この_idフィールドを非表示にし、必要なフィールドだけを取得することが可能です。本記事では、具体的な手順をサンプルコード付きで解説します。1. コレクションとドキュメントの作成まず、サンプル用のコレクションを作成し、ドキュメントを挿入します。> db.demo575.insertOne({id:101, Information:{Name:&quo

  2. MongoDB Atlasでのデータベース作成と接続方法をわかりやすく解説

    はじめにMongoDBは、汎用的な用途で広く利用されているNoSQLデータベースのひとつです。オープンソースのドキュメント指向データベースであり、C++で構築されている点が特徴です。この記事では、以下の手順について順を追って解説します。クラウド上でのクラスタ作成接続用ツール「MongoDB Compass」のインストールCompassを使用したMongoDBクラスタへの接続データベースの作成MongoDBの基本用語MongoDBを扱う前に、まず押さえておきたい基本的な用語を確認しましょう。データベース(Database)コレクションを格納する物理的なコンテナです。コレクション(Collecti