因此,我确定这里缺少一些简单的东西,但是当我将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,它将无法连接(并告诉您更多信息)。

理想情况下,除了“玩转”以外,您还可以使用Command Line Parameters来启动mongod。通过相同的措施,您应该使用明确的指令启动mongo shell。

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

./mongo localhost:27017/dbname

关于mongodb - Mongodb-运行 “mongo”和 “mongod”数据库之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4883045/

10-12 06:01