【感動!GUIからDBを直接更新】MongoDB Compassの使い方

効率アップ
本記事の内容
MongoDBをGUIで操作できるMongoDB Compassを紹介します。
MongoDB CompassはMongoDB社の公式ツールであり、インストールからDBアクセスまで簡単にできます。
『MongoDBの検索や更新をコマンド実行するのがめんどくさい』という方向けの記事です。

MongoDBの操作って覚えづらいし、毎回打つの大変だな。
MongoDB Compassを使えばGUIで簡単に操作できるよ。

MongoDB Compassという画面からMongoDBの中身を見たり更新したりできるGUIのツールを紹介します。

MongoDB CompassはインストールしてDBを見るまでがびっくりするほど簡単ですので、慣れていない人でもできるように解説します。

アップデートプランもありますが、基本的な機能は無料で利用できます。

こんな感じで更新できるので便利 MongoDBCompass

MongoDB Compassの事前準備

MongoDB Compassのインストール

公式サイト(Download Center: Compass | MongoDB)からMongoDB Compassをダウンロードして、PCにインストールします。

Version、Platformsを選択し、ダウンロードします。VersionはStable(安定版)でOKです。

2020年11月だと自動で選択されますね。 ダウンロード

ダウンロードした実行ファイルをインストールします。

補足
MongoDB Compassのマニュアルは「MongoDB Compass — MongoDB Compass stable」から参照できます。

MongoDBへの接続(自分のPCのMongoDBに接続する)

まずは自分のPCのMongoDBに接続してみましょう。

事前にMongoDBを起動しておいてください。→MongoDBの起動方法

インストールしたMongoDB Compassアプリケーションを起動すると接続設定画面が表示されます。
「Fill in connection fields indivisually(個別に接続項目を設定する)」をクリック

ログイン1

個別にhostnameやportを接続する画面に遷移します。

ログイン2

MongoDBの設定がデフォルト設定のままであれば、hostnameにlocalhost、portに27017(MongoDBのデフォルトポート番号)を入力するだけで接続できてしまいます。

セキュリティを強化してPort番号やユーザ認証を設定している場合は、ポート番号やユーザ名、パスワードを入力してください。

これで接続まで完了です。

MongoDB Compassの使い方

document検索(find)

ログインするとデータベース名が一覧で表示されるので、検索したいデータベース、次の画面でcollectionをクリックします。

すると、JSON形式でdocumentを参照することができました。
TABLEタブをクリックするとTABLE形式でdocumentを参照できるので見やすくなりますね。

find

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(より下)のように使います。

filter

document更新(update)

documentの更新はテーブルの対象の項目をダブルクリックするとできます。
更新した後はUPDATEボタンで変更を確定します。

update

document削除(remove)

documentの削除はdocumentを選択してゴミ箱ボタンをクリックするとできます。

delete

複数を選択して削除はできないので、一括で大量の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の機能を使うことができます。

aggregation

上の写真は以下のクエリを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の比較ランキングでも紹介しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ABOUT US

ケネ
はじめまして、ケネです。

Node.jsの技術情報を書いています。

一人でも多くの方と「自分でもできた」感覚を共有したいので、なるべくわかりやすく、実体験ベースでのブログを心がけています。
技術で自分の世界を広げましょう。

不明点や質問があればお気軽にコメントください。