MongoDB: はじめに

MongoDBの始め方

Mongo CLIを使用してMongoDBインスタンスに接続するには、次のコマンドを使用します。

mongo --quiet mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true

例えば、adminユーザーとしてadminデータベースに接続したい場合、次のように実行します。

mongo --quiet mongodb://admin:<password>@<XXXXXX>.stackhero-network.com:27017/admin?tls=true

Mongo CLIがシステムにインストールされていない場合は、公式MongoDBドキュメントからダウンロードできます。あるいは、Dockerがシステムにある場合、次のコマンドが役立つかもしれません。

docker run -it mongo /bin/bash

セキュリティを向上させ、より良い組織化を確保するために、各データベースに対してユニークなユーザーを作成することをお勧めします。以下は新しいユーザーを作成するためのスクリプトの例です。

db.getSiblingDB("myDatabase")
  .createUser({
    user: "myUser",
    pwd: "myPassword",
    roles: [ { role: "readWrite", db: "myDatabase" } ],
    passwordDigestor: "server"
  });

上記のスクリプトは、myUserという名前のユーザーをmyPasswordというパスワードで作成し、myDatabaseデータベースに対する読み書き権限を付与します。

警告 ユーザー作成操作を行う際は、adminユーザーとして接続していることを確認してください。

例えば、myUsermyDatabaseデータベースから削除するには、次のコマンドを実行します。

db.getSiblingDB("myDatabase").dropUser("myUser");

MongoDBデータをバックアップするには、次のコマンドを使用します。

mongodump --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"

次のようなエラーが発生した場合:

authentication failed for admin on <database> from client <ip>; UserNotFound: Could not find user admin@<database>

これは、指定されたデータベースに対してadminユーザーが登録されていないためかもしれません。--authenticationDatabase=adminオプションを追加することで問題が解決するかもしれません。

mongodump --authenticationDatabase=admin --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"

圧縮バックアップを行うには、--gzipオプションを含めることができます。

mongodump --gzip --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"

このエラーは、Admin Mongo UIを介してユーザーを作成しようとしたときに発生することがあります。これを避けるために、MongoDBでのデータベースとユーザーの作成セクションで提供されているMongoクエリを使用してください。

注意: Admin Mongo UIは直接クエリの実行をサポートしていません。代わりに、Mongo CLI(詳細はこちら)やRobo 3TなどのGUIツールを使用することを検討してください(設定ガイドを見る)。