Mongodb - 运行“mongo”和“mongod”数据库之间的区别

时间:2011-02-03 06:09:42

标签: mongodb shell database

所以,我确定我在这里遗漏了一些简单的东西,但是当我将mongo作为守护进程运行时(使用mongod --fork或只是mongod),我看到的数据库内容与我刚刚运行“mongo”时不同主机。

我唯一的假设是,当数据只运行shell时,数据存储在除/ data / db之外的某个地方,并在启动mongod时切换到/ data / db。在这种情况下,如何在运行mongod时获取我的数据?

3 个答案:

答案 0 :(得分:86)

我认为这里有一些混乱。

mongod是“Mongo守护程序”,它基本上是数据库的主机进程。当你开始mongod时,你基本上是在说“启动MongoDB进程并在后台运行它”mongod有几个默认参数,例如在/data/db中存储数据并在端口27017上运行。

mongo是连接到mongod的特定实例的命令行shell。在没有参数的情况下运行mongo时,它默认连接到端口27017上的localhost。如果针对无效的机器:端口组合运行mongo,则它将无法连接(并告诉您更多)

理想情况下,除了“玩游戏”之外的其他任何事情,您都会使用Command Line Parameters来启动mongod。通过相同的措施,您应该使用明确的指令启动mongo shell。

根据您的描述,我认为您可能遇到有关使用默认数据库的问题。尝试使用以下(mongo是您的数据库名称)

启动dbname
./mongo localhost:27017/dbname

答案 1 :(得分:3)

是的,这可能是对这个问题的幼稚答案,但我提出来是为了让人们可以轻松理解它!

方法:

  

蒙哥

(Mongo Daemon的简称)是MongoDB服务器用来完成任务的后台进程。此过程负责管理整个MongoDB服务器任务,例如接受请求,响应用户,管理MongoDB服务器操作的内存需求以及其他运行MongoDB Server必不可少的事情。

TLDR; 基本上是MongoDB服务器

蒙哥:

  

蒙哥

另一方面,

是MongoDB的交互式JavaScript Shell界面,它为系统管理员提供了强大的界面,并为开发人员提供了直接测试数据库查询和操作的方法。 mongo还提供了用于MongoDB的功能齐全的JavaScript环境

TLDR; 基本上,我认为它是mongodb客户端,可以用作访问我的mongod实例的访问MongoDB数据库服务器的外壳

答案 2 :(得分:1)

Mongo D(守护进程)。 用简单的“ Hello world”一词-您不会直接与Mongod交流。 而是使用数据库客户端

您会发现更多类似的工具。

您要使用 Mongo Shell 客户端(mongo命令)。

视觉

查看“客户”-“实际情况”的一种好方法是并排打开两个(或更多)终端。

运行mongod(如果没有安装和运行MongoDB服务器,mongo命令将不起作用),然后运行mongo

enter image description here

输出(1 connection: application mongo shell} enter image description here

接下来,运行一些CRUD操作,并查看mongod下的消息。

如果您连接指南针客户端,则表示相同的想法: enter image description here

管理mongodb进程文档(更改数据目录,端口等): https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/