MongoDB CompassはMongoDB社の公式ツールであり、インストールからDBアクセスまで簡単にできます。 『MongoDBの検索や更新をコマンド実行するのがめんどくさい』という方向けの記事です。
MongoDB Compassという画面からMongoDBの中身を見たり更新したりできるGUIのツールを紹介します。
MongoDB CompassはインストールしてDBを見るまでがびっくりするほど簡単ですので、慣れていない人でもできるように解説します。
アップデートプランもありますが、基本的な機能は無料で利用できます。
こんな感じで更新できるので便利Contents
MongoDB Compassの事前準備
MongoDB Compassのインストール
公式サイト(Download Center: Compass | MongoDB)からMongoDB Compassをダウンロードして、PCにインストールします。
Version、Platformsを選択し、ダウンロードします。VersionはStable(安定版)でOKです。
2020年11月だと自動で選択されますね。ダウンロードした実行ファイルをインストールします。
MongoDBへの接続(自分のPCのMongoDBに接続する)
まずは自分のPCのMongoDBに接続してみましょう。
事前にMongoDBを起動しておいてください。→MongoDBの起動方法
インストールしたMongoDB Compassアプリケーションを起動すると接続設定画面が表示されます。 「Fill in connection fields indivisually(個別に接続項目を設定する)」をクリック
個別にhostnameやportを接続する画面に遷移します。
MongoDBの設定がデフォルト設定のままであれば、hostnameにlocalhost、portに27017(MongoDBのデフォルトポート番号)を入力するだけで接続できてしまいます。
セキュリティを強化してPort番号やユーザ認証を設定している場合は、ポート番号やユーザ名、パスワードを入力してください。
これで接続まで完了です。
MongoDB Compassの使い方
document検索(find)
ログインするとデータベース名が一覧で表示されるので、検索したいデータベース、次の画面でcollectionをクリックします。
すると、JSON形式でdocumentを参照することができました。 TABLEタブをクリックするとTABLE形式でdocumentを参照できるので見やすくなりますね。
JSON形式でもTABLE形式でもこの画面から更新や削除をすることができますよ。
document検索(find)数が多い場合にfilterで絞る
検索ですが、documentのレコード数が多いと最新のデータまで移動するのが困難です。 そんな時はfilterで検索対象を絞ることができます。
例えば、DBには日付データ(ISODate)がある場合、以下のように検索できます。 例:2019/11/12 AM10:00(日本時間)以降でfilter
{"date":{"$gte":ISODate("2019-11-12T10:00:00.000+00:00")}}
判定の$gteの部分は$gte(以上)、$gt(より上)、$lte(以下)、$lt(より下)のように使います。
document更新(update)
documentの更新はテーブルの対象の項目をダブルクリックするとできます。 更新した後はUPDATEボタンで変更を確定します。
document削除(remove)
documentの削除はdocumentを選択してゴミ箱ボタンをクリックするとできます。
複数を選択して削除はできないので、一括で大量のdocumentを消したい時はMongoDBのクエリ(removeなど)で消した方が楽です。
MongoDB Compassの高度な使い方
自分のPCから外部サーバに接続する
自分のPCの設定
自分のPCから外部サーバに接続します。環境はさくらのVPS のCentOS7をしています。
MongoDB Compassの接続情報画面に外部サーバの情報を設定していきます。
- Port:MongoDBのポート番号(デフォルトは27017)
- Authentication:MongoDB接続時の認証設定(デフォルトはNone)
- Username:MongoDBに作成したDatabaseのユーザ名
- Password:MongoDBに作成したDatabaseのパスワード
- Authentication Databese:MongoDBに作成したDatabase
ポート番号、認証方式がデフォルトのままだとちょっとセキュリティが弱いかもしれません。MongoDBに設定したい最低限のセキュリティ設定も参考にしてみてください。
外部サーバの設定
外部サーバの設定は「サーバのファイアウォール設定でポート番号を通す」「MongoDBでIPアドレスを許可する」の2つが必要です。 まずはサーバのファイアウォール設定を変更します。# 27017ポートを永続的に許可 sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent # 設定の再読み込み sudo firewall-cmd --reload # 設定の確認(27017が許可されていること) sudo firewall-cmd --list-port
続いてMongoDBのIPアドレスを許可します。 MongoDB起動時に「–bind_ip_all」オプションを設定。
# MongoDBを停止 pkill mongod # 「--bind_ip_all」をつけてMongoDBを起動(その他のオプションは環境に合わせて設定してください) sudo mongod --auth --port 27017 --fork --noscripting --dbpath /var/lib/mongo --logpath /var/log/mongodb.log --bind_ip_all以上で完了です。外部サーバに接続できると思いますので、試してみてください。
Aggregateを使う
MongoDBではfindの検索結果をグループ化して合計したり、平均を取ったり、ソートをGUIから実行できます。
MongoDB CompassではAggregationsタブでAggregateの機能を使うことができます。
上の写真は以下のクエリをMongoDBで入力した例です。
title項目ごとのassess_numberの平均を取り、平均の昇順で並べています。
db.blogtest.aggregate( { $group : { _id : "$title", "average" : { $avg : "$access_number"} } }, {$sort: {"average":1}} //sort(降順) );
MongoDB Compassの使い方まとめ
MongoDB Compassはインストールから接続まで簡単にできます。 画面を更新しながら効率よくテストできますよ。
MongoDBの使い方まとめに戻る。
自作アプリケーションを作るならさくらのVPS が手軽で使いやすいです。MongoDBは軽いので最低料金プランのVPSでも運用できます。【初めてでも簡単!】VPSの比較ランキングでも紹介しています。