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.tgzxyz代わりに、いくつかのバージョンとシステムタイプの情報があります。抽出されたフォルダは、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.listUbuntu 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 updateMongoDBをインストールします。
$ 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 updateMongoDBをインストールする
$ 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()