MongoDBMongoDBを使い始める


備考

  • モバイルアプリケーションが市場に投入された後、世界のデータは急激に増加し始めました。この膨大な量のデータは、従来のリレーショナルデータベース(SQL)で処理することはほとんど不可能になりました。 NoSQLデータベースを導入して、各データの可変数の列のように柔軟性が増したデータを処理します。
  • MongoDBはNoSQLの主要なデータベースの1つです。各コレクションには多数のJSONドキュメントが含まれています。 JSONドキュメントで表現できるデータモデルはすべてMongoDBに簡単に保存できます。
  • MongoDBはサーバークライアントデータベースです。サーバーは通常、バイナリファイルmongodで動作し、クライアントはmongo動作します。
  • v.3.2より前のMongoDBには、さまざまな哲学的かつ実用的な理由から結合操作がありません。しかし、Mongoシェルはjavascriptをサポートしているので、$ lookupが利用できない場合は、挿入する前にjavascriptでドキュメントの結合操作をシミュレートできます。
  • 運用環境でインスタンスを実行するには、 Operationsチェックリストに従うことを強くお勧めします。

バージョン

バージョン発売日
3.4 2016-11-29
3.2 2015-12-08
3.0 2015-03-03
2.6 2014-04-08
2.4 2013-03-19
2.2 2012-08-29
2.0 2011-09-12
1.8 2011-03-16
1.6 2010-08-31
1.4 2010-03-25
1.2 2009年12月10日

mongo shellの基本コマンド

利用可能なすべてのデータベースを表示する:

show dbs;
 

アクセスする特定のデータベースを選択します(例: mydbmydb がまだ存在しない場合は作成されmydb

use mydb;
 

データベースにすべてのコレクションを表示します(最初に選択してください、上記参照)。

show collections; 
 

データベースで使用できるすべての機能を表示する:

db.mydb.help();
 

現在選択されているデータベースを確認するには、コマンドdb

> db
mydb
 

db.dropDatabase() コマンドは、既存のデータベースを削除するために使用します。

db.dropDatabase()
 

相補的条件

SQL用語 MongoDBの利用規約
データベースデータベース
コレクション
エンティティ/行資料
カラムキー/フィールド
テーブル結合 埋め込みドキュメント
主キー 主キー (mongodb自身が提供するデフォルトのキー_id

MongoDBでのJavaScriptファイルの実行

./mongo localhost:27017/mydb myjsfile.js
 

説明:この操作は、 mongo シェルのmyjsfile.js スクリプトを実行し、ポート27017 localhost インターフェースを介してアクセス可能なmongod インスタンス上のmydb データベースに接続します。 localhost:27017mongodb 使用するデフォルトのポートであるため必須ではありません。

また、 mongo コンソールから.js ファイルを実行することもできます。

>load("myjsfile.js")
 

こんにちは世界

インストール後、以下の行をmongoシェル(クライアント端末)に入力してください。

> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
 

"こんにちは世界"

説明:

  • 最初の行では、デフォルトのデータベースtestworld という名前のコレクションに{ key : value } ペアのドキュメントを挿入しました。
  • 2行目では、挿入したばかりのデータを取得します。検索されたデータは、 cur というjavascript変数に保持されます。次に、 next() 関数によって、最初の唯一のドキュメントを取り出し、 x という別のjs変数に格納しました。次に、キーを提供する文書の値を表示します。

インストール

MongoDBをインストールするには、以下の手順に従います。

  • Mac OSの場合:

    • Mac OSには、手動インストールまたは自作の 2つのオプションがあります。
    • homebrewでインストールする:
      • ターミナルに次のコマンドを入力します。
        $ brew install mongodb
         
    • 手動インストール:
      • 最新のリリースをここからダウンロードしてください 。適切なファイルをダウンロードしていることを確認し、オペレーティングシステムの種類が32ビットか64ビットかを特に確認してください。ダウンロードしたファイルの形式はtgz です。

      • このファイルがダウンロードされているディレクトリに移動します。次に、次のコマンドを入力します。

        $ tar xvf mongodb-osx-xyz.tgz
         

        xyz 代わりに、いくつかのバージョンとシステムタイプの情報があります。抽出されたフォルダは、 tgz ファイルと同じ名前になります。フォルダの中には、 bin という名前のサブフォルダがあり、 mongodmongo とともにいくつかのバイナリファイルが入っています。

      • デフォルトでは、サーバーは/data/db フォルダーにデータを保持します。したがって、そのディレクトリを作成してから、次のコマンドを実行してサーバーを実行する必要があります。

        $ sudo bash
        # mkdir -p /data/db
        # chmod 777 /data
        # chmod 777 /data/db
        # exit
         
      • サーバーを起動するには、現在の場所から次のコマンドを入力する必要があります。

        $ ./mongod
         

        デフォルトでは、ポート27017でサーバーを起動します。

      • クライアントを起動するには、以前と同じディレクトリを持つ新しい端末を開く必要があります。次に、次のコマンドはクライアントを起動し、サーバーに接続します。

        $ ./mongo
         

        デフォルトでは、 test データベースに接続します。 connecting to: test ような行が表示された場合。その後、MongoDBを正常にインストールしました。おめでとう!今、あなたはもっと自信を持ってHello Worldをテストできます。

  • Windowsの場合:

    • 最新のリリースをここからダウンロードしてください 。適切なファイルをダウンロードしていることを確認し、オペレーティングシステムの種類が32ビットか64ビットかを特に確認してください。

    • ダウンロードしたバイナリファイルの拡張子はexe です。それを実行します。インストールウィザードが表示されます。

    • 次へをクリックします。

    • ライセンス契約に同意し、[ 次へ ] クリックします。

    • [ 完全インストール]を選択します。

    • インストール」をクリックします 。管理者の許可を求めるウィンドウが表示されることがあります。 [ はい]をクリックします。

    • インストールが完了たらFinishをクリックします。

    • これで、mongodbはC:/Program Files/MongoDB/Server/3.2/bin のパスにインストールされC:/Program Files/MongoDB/Server/3.2/bin 。バージョン3.2の代わりに、あなたのケースのためのいくつかの他のバージョンが存在する可能性があります。それに応じてパス名が変更されます。

    • bin ディレクトリには、 mongodmongo とともにいくつかのバイナリファイルが入っています。他のフォルダから実行するには、パスをシステムパスに追加します。それを行うには:

      • [ マイコンピュータ ]を右クリックし、[ プロパティ ]を選択します
      • 左側のペインで[ 高度なシステム設定]をクリックします。
      • [ 詳細設定 ]タブの[ 環境変数 ]をクリックします。
      • システム変数からのパス」セクションを選択し、 「編集...」をクリックします
      • Windows 10の前に、セミコロンを追加し、上記のパスを貼り付けます。 Windowsの10からは、新しいパスを追加するための新しいボタンがあります。
      • [ OK]をクリックして変更を保存します。
    • さて、という名前のフォルダを作成しdata 、サブフォルダという名前の持つdb サーバーを実行したいです。

    • コマンドプロンプトを起動します。 cmdのパスを変更するか、 ここ[コマンドウィンドウ開く ]をクリックすると、ShiftキーとCtrlキーを同時に押しながらフォルダGUIの空き領域を右クリックして表示されます。

    • サーバーを起動するコマンドを記述します。

      > mongod
       

      デフォルトでは、ポート27017でサーバーを起動します。

    • 別のコマンドプロンプトを開き、次のように入力してクライアントを起動します。

      > mongo
       
    • デフォルトでは、 test データベースに接続します。 connecting to: test ような行が表示された場合。その後、MongoDBを正常にインストールしました。おめでとう!今、あなたはもっと自信を持ってHello Worldをテストできます。

  • Linuxの場合: Mac OSとほぼ同じですが、いくつかの同等のコマンドが必要です。

    • Debianベースのディストリビューション( apt-get を使用):
      • MongoDBリポジトリキーをインポートします。

        $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
        gpg: Total number processed: 1\
        gpg:               imported: 1  (RSA: 1)
         
      • Ubuntu 16.04のパッケージリストにリポジトリを追加してください。

        $ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
         
      • Ubuntu 14.04で

        $ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
         
      • パッケージリストを更新します。

        $ sudo apt-get update
         
      • MongoDBをインストールします。

        $ sudo apt-get install mongodb-org
         
    • Red Hatベースのディストリビューション( yum を使用):
      • あなたが好むテキストエディタを使用してください。

        $ vi /etc/yum.repos.d/mongodb-org-3.4.repo

      • 次のテキストを貼り付けます。

        [mongodb-org-3.4]
        name=MongoDB Repository
        baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
        gpgcheck=1
        enabled=1
        gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
         
      • パッケージリストを更新します。

        $ sudo yum update
         
      • MongoDBをインストールする

        $ sudo yum install mongodb-org
         

シェルの読み込み可能な出力を作る

コレクションテストに3つのレコードを追加します:

> db.test.insert({"key":"value1","key2":"Val2","key3":"val3"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value2","key2":"Val21","key3":"val31"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value3","key2":"Val22","key3":"val33"})
WriteResult({ "nInserted" : 1 })
 

もし私たちが見つけることによってそれらを見るなら、彼らは非常に醜いように見えるでしょう。

> db.test.find()
{ "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"), "key" : "value1", "key2" : "Val2
", "key3" : "val3" }
{ "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"), "key" : "value2", "key2" : "Val2
1", "key3" : "val31" }
{ "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"), "key" : "value3", "key2" : "Val2
2", "key3" : "val33" }
 

これを回避して読みやすくするには、 pretty ()関数を使用します。

> db.test.find().pretty()
{
        "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"),
        "key" : "value1",
        "key2" : "Val2",
        "key3" : "val3"
}
{
        "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"),
        "key" : "value2",
        "key2" : "Val21",
        "key3" : "val31"
}
{
        "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"),
        "key" : "value3",
        "key2" : "Val22",
        "key3" : "val33"
}
>