MongoDB チュートリアル
MongoDBを使い始める
サーチ…
備考
- モバイルアプリケーションが市場に投入された後、世界のデータは急激に増加し始めました。この膨大な量のデータは、従来のリレーショナルデータベース(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日 |
インストール
MongoDBをインストールするには、以下の手順に従います。
Mac OSの場合:
- Mac OSには、手動インストールまたは自作の 2つのオプションがあります。
- homebrewでインストールする:
- ターミナルに次のコマンドを入力します。
$ brew install mongodb
- ターミナルに次のコマンドを入力します。
- 手動インストール:
最新のリリースをここからダウンロードしてください 。適切なファイルをダウンロードしていることを確認し、オペレーティングシステムの種類が32ビットか64ビットかを特に確認してください。ダウンロードしたファイルの形式は
tgz
です。このファイルがダウンロードされているディレクトリに移動します。次に、次のコマンドを入力します。
$ tar xvf mongodb-osx-xyz.tgz
xyz
代わりに、いくつかのバージョンとシステムタイプの情報があります。抽出されたフォルダは、tgz
ファイルと同じ名前になります。フォルダの中には、bin
という名前のサブフォルダがあり、mongod
とmongo
とともにいくつかのバイナリファイルが入っています。デフォルトでは、サーバーは
/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
ディレクトリには、mongod
とmongo
とともにいくつかのバイナリファイルが入っています。他のフォルダから実行するには、パスをシステムパスに追加します。それを行うには:- [ マイコンピュータ ]を右クリックし、[ プロパティ ]を選択します 。
- 左側のペインで[ 高度なシステム設定]をクリックします。
- [ 詳細設定 ]タブの[ 環境変数 ]をクリックします。
- 「 システム変数からのパス」セクションを選択し、 「編集...」をクリックします 。
- 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
- Debianベースのディストリビューション(
こんにちは世界
インストール後、以下の行をmongoシェル(クライアント端末)に入力してください。
> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
"こんにちは世界"
説明:
- 最初の行では、デフォルトのデータベース
test
とworld
という名前のコレクションに{ key : value }
ペアのドキュメントを挿入しました。 - 2行目では、挿入したばかりのデータを取得します。検索されたデータは、
cur
というjavascript変数に保持されます。次に、next()
関数によって、最初の唯一のドキュメントを取り出し、x
という別のjs変数に格納しました。次に、キーを提供する文書の値を表示します。
相補的条件
SQL用語 | MongoDBの利用規約 |
---|---|
データベース | データベース |
表 | コレクション |
エンティティ/行 | 資料 |
カラム | キー/フィールド |
テーブル結合 | 埋め込みドキュメント |
主キー | 主キー (mongodb自身が提供するデフォルトのキー_id ) |
MongoDBでのJavaScriptファイルの実行
./mongo localhost:27017/mydb myjsfile.js
説明:この操作は、 mongo
シェルのmyjsfile.js
スクリプトを実行し、ポート27017
localhost
インターフェースを介してアクセス可能なmongod
インスタンス上のmydb
データベースに接続します。 localhost:27017
はmongodb
使用するデフォルトのポートであるため必須ではありません。
また、 mongo
コンソールから.js
ファイルを実行することもできます。
>load("myjsfile.js")
シェルの読み込み可能な出力を作る
コレクションテストに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"
}
>
mongo shellの基本コマンド
利用可能なすべてのデータベースを表示する:
show dbs;
アクセスする特定のデータベースを選択します(例: mydb
。 mydb
がまだ存在しない場合は作成されmydb
:
use mydb;
データベースにすべてのコレクションを表示します(最初に選択してください、上記参照)。
show collections;
データベースで使用できるすべての機能を表示する:
db.mydb.help();
現在選択されているデータベースを確認するには、コマンドdb
> db
mydb
db.dropDatabase()
コマンドは、既存のデータベースを削除するために使用します。
db.dropDatabase()