web-dev-qa-db-ja.com

Mongodb-「mongo」データベースと「mongod」データベースの実行の違い

だから、ここで簡単なものが欠けていると確信していますが、mongoをデーモンとして実行すると(mongod --forkまたは単にmongodを使用して)、ホストマシンで「mongo」を実行する場合とは異なるデータベースコンテンツが表示されます。

私の唯一の仮定は、データがシェルのみを実行している場合は/ data/db以外の場所に保存され、mongodを起動すると/ data/dbに切り替わることです。その場合、mongodを実行しているときにデータを取得するにはどうすればよいですか?

44
Jesse

ここには混乱があると思います。

mongodは「Mongo Daemon」であり、基本的にはデータベースのホストプロセスです。 mongodを起動すると、基本的に「MongoDBプロセスを起動してバックグラウンドで実行する」と言います。 mongodには、/data/dbにデータを保存したり、ポート27017で実行したりするなど、いくつかのデフォルトパラメータがあります。

mongoは、mongodの特定のインスタンスに接続するコマンドラインシェルです。パラメータなしでmongoを実行すると、デフォルトでポート27017でlocalhostに接続します。無効なmachine:portの組み合わせに対してmongoを実行すると、接続に失敗します(そして、ずっと)。

理想的には、「遊び回る」以外のことをするときは、mongodを開始するために コマンドラインパラメーター を使用します。同じ方法で、明示的な指示でmongoシェルを開始する必要があります。

あなたの説明に基づいて、デフォルトのデータベースの使用に関する問題が発生していると思われます。次でmongoを開始してみてください(dbnameはデータベース名です)

./mongo localhost:27017/dbname
90
Gates VP

はい、これはこの質問に対する単純な答えかもしれませんが、人々が簡単に理解できるように私はそれを提案しています!

Mongod:

モンゴッド

(Mongo Daemonの略)は、MongoDBサーバーが処理を実行するために使用するバックグラウンドプロセスです。このプロセスは、要求の受け入れ、ユーザーへの応答、MongoDBサーバー操作のメモリ要件の管理など、MongoDBサーバーの実行に不可欠な他のすべてのMongoDBサーバータスクを管理します。

TLDR;基本的にはMongoDBサーバーです

Mongo:

モンゴ

一方、MongoDBへのインタラクティブなJavaScriptシェルインターフェイスは、システム管理者に強力なインターフェイスを提供するだけでなく、開発者がデータベースでクエリと操作を直接テストする方法を提供します。 mongoは、MongoDBで使用するための完全に機能するJavaScript環境も提供します

TLDR;基本的に、MongoDBデータベースサーバーにアクセスしてmongodインスタンスを実行するシェルとして使用できるmongodbクライアントとして考えています

4
Mr. Suryaa Jha