だから、ここで簡単なものが欠けていると確信していますが、mongoをデーモンとして実行すると(mongod --forkまたは単にmongodを使用して)、ホストマシンで「mongo」を実行する場合とは異なるデータベースコンテンツが表示されます。
私の唯一の仮定は、データがシェルのみを実行している場合は/ data/db以外の場所に保存され、mongodを起動すると/ data/dbに切り替わることです。その場合、mongodを実行しているときにデータを取得するにはどうすればよいですか?
ここには混乱があると思います。
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
はい、これはこの質問に対する単純な答えかもしれませんが、人々が簡単に理解できるように私はそれを提案しています!
Mongod:
モンゴッド
(Mongo Daemonの略)は、MongoDBサーバーが処理を実行するために使用するバックグラウンドプロセスです。このプロセスは、要求の受け入れ、ユーザーへの応答、MongoDBサーバー操作のメモリ要件の管理など、MongoDBサーバーの実行に不可欠な他のすべてのMongoDBサーバータスクを管理します。
TLDR;基本的にはMongoDBサーバーです
Mongo:
モンゴ
一方、MongoDBへのインタラクティブなJavaScriptシェルインターフェイスは、システム管理者に強力なインターフェイスを提供するだけでなく、開発者がデータベースでクエリと操作を直接テストする方法を提供します。 mongoは、MongoDBで使用するための完全に機能するJavaScript環境も提供します
TLDR;基本的に、MongoDBデータベースサーバーにアクセスしてmongodインスタンスを実行するシェルとして使用できるmongodbクライアントとして考えています