所以,我确定我在这里遗漏了一些简单的东西,但是当我将mongo作为守护进程运行时(使用mongod --fork或只是mongod),我看到的数据库内容与我刚刚运行“mongo”时不同主机。
我唯一的假设是,当数据只运行shell时,数据存储在除/ data / db之外的某个地方,并在启动mongod时切换到/ data / db。在这种情况下,如何在运行mongod时获取我的数据?
答案 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
)-在交互式JavaScript界面中(或运行mongosh
the new MongoDB Shell)。您会发现更多类似的工具。
您要使用 Mongo Shell 客户端(mongo
命令)。
查看“客户”-“实际情况”的一种好方法是并排打开两个(或更多)终端。
运行mongod
(如果没有安装和运行MongoDB服务器,mongo命令将不起作用),然后运行mongo
:
输出(1 connection: application mongo shell
}
接下来,运行一些CRUD操作,并查看mongod
下的消息。
管理mongodb进程文档(更改数据目录,端口等): https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/