[英]Mongodb - Difference between running “mongo” and “mongod” databases
所以,我确定我在这里遗漏了一些简单的东西,但是当我将 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
,它默认连接到端口 27017 上的本地主机。如果您对无效的 machine:port 组合运行mongo
,那么它将无法连接(并告诉您尽可能多的信息)。
理想情况下,除了“玩耍”之外,您还可以使用命令行参数来启动mongod
。 通过同样的措施,您应该使用明确的指令启动mongo
shell。
根据您的描述,我认为您可能会遇到有关使用默认数据库的问题。 尝试使用以下内容启动mongo
(其中dbname
是您的数据库名称)
./mongo localhost:27017/dbname
是的,这可能是对这个问题的幼稚回答,但我提出来是为了让人们可以轻松理解!
蒙戈:
蒙哥
(Mongo Daemon 的简称)是 MongoDB 服务器用来完成任务的后台进程。 该进程负责管理整个 MongoDB 服务器的任务,例如接受请求、响应用户、管理 MongoDB 服务器操作的内存需求以及其他 MongoDB 服务器运行必不可少的事情。
TLDR; 基本上它是MongoDB服务器
蒙哥:
蒙戈
另一方面,是 MongoDB 的交互式 JavaScript shell 接口,它为系统管理员提供了一个强大的接口,也为开发人员提供了一种直接使用数据库测试查询和操作的方法。 mongo 还提供了一个功能齐全的 JavaScript 环境,用于与 MongoDB 一起使用
TLDR; 基本上我认为它是 mongodb 客户端,可以用作外壳来访问 MongoDB 数据库服务器运行我的 mongod 实例
Mongo D
(守护进程)。 用简单的“Hello world”的话——你不会直接与 Mongod 交流。 相反,您使用数据库客户端:
mongo
)- 在交互式 JavaScript 界面中(-或-运行mongosh
新的 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/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.