所以,我确定我在这里缺少了一些简单的东西,但是当我像守护进程一样运行mongo(使用mongod --fork或只是mongod)时,我看到的数据库内容与我在主机上仅运行“mongo”时看到的不同。
我的唯一假设是,在仅运行shell时,数据存储在其他地方而不是/data/db,当我启动mongod时切换到/data/db。如果是这种情况,那么在运行mongod时如何访问我的数据?
所以,我确定我在这里缺少了一些简单的东西,但是当我像守护进程一样运行mongo(使用mongod --fork或只是mongod)时,我看到的数据库内容与我在主机上仅运行“mongo”时看到的不同。
我的唯一假设是,在仅运行shell时,数据存储在其他地方而不是/data/db,当我启动mongod时切换到/data/db。如果是这种情况,那么在运行mongod时如何访问我的数据?
mongod
是“Mongo Daemon”,基本上它是数据库的主进程。当你启动mongod
时,你基本上在说“启动MongoDB进程并在后台运行”。mongod
有几个默认参数,例如将数据存储在/data/db
中并在端口27017上运行。
mongo
是连接到特定mongod
实例的命令行 shell。当你不带参数运行mongo
时,它默认连接到localhost的端口27017。如果你对一个无效的 machine:port 组合运行mongo
,则会连接失败(并告诉你)。mongod
。同样的措施也适用于用明确的指令启动mongo
shell。mongo
(其中dbname
是你的数据库名称)。./mongo localhost:27017/dbname
是的,这可能是对这个问题一个天真的回答,但我提出来让人们更容易理解!
Mongod:
mongod
(Mongo Daemon的缩写)是由MongoDB服务器使用的后台进程,用于完成各种任务。该进程负责管理整个MongoDB服务器任务,例如接受请求、响应用户、管理MongoDB服务器操作所需的内存要求以及其他MongoDB服务器运行所必需的事项。
TLDR; 基本上它就是MongoDB服务器
Mongo:
Mongo
另一方面,它是一个交互式JavaScript shell界面,可用于MongoDB,为系统管理员提供了强大的接口,也为开发人员直接测试查询和操作提供了一种方式。 mongo还提供了一个完全功能的JavaScript环境,可与MongoDB一起使用。
TLDR; 基本上我认为它是mongodb客户端,可以用作shell来访问运行mongod实例的MongoDB数据库服务器
MongoD
(守护进程)。
简单来说,“Hello world”,您不会直接与Mongod通信。相反,您需要使用DB客户端:
mongo
)- 交互式JavaScript界面(或运行新的MongoDB Shell mongosh
)。您可以找到更多类似的工具。
在您的情况下,您想要使用Mongo Shell客户端(mongo
命令)。
查看“客户端”-“正在运行” 的一个很好的方法是并排打开两个终端(或更多)。
运行mongod
(如果未安装和运行MongoDB服务器,则mongo命令将无法工作),然后运行mongo
:
输出(1 connection: application mongo shell
)
接下来,运行一些CRUD操作并查看mongod
下的消息。
如果您连接Compass客户端,同样的想法:
管理MongoDB进程文档(更改数据目录,端口等): https://www.mongodb.com/docs/manual/tutorial/manage-mongodb-processes/
mongod
时出现错误:bash: mongod: command not found
或 'mongod' is not recognized as an internal or external command, operable program or batch file
. 1) 使用 .msi
安装程序安装 MongoDB 5.0.6
,并选择 不 作为 Windows 服务运行,2) 在 /data/db
目录下创建目录,3) 安装 MongoDB Shell 1.3.1
。文档没有描述如何使用 mongod
。 - user1063287Mongod(Mongo守护进程)
Mongo