返回介绍

MongoDB - 连接

发布于 2025-02-22 13:46:41 字数 4081 浏览 0 评论 0 收藏 0

描述

在本教程我们将讨论 MongoDB 的不同连接方式。

启动 MongoDB 服务

在前面的教程中,我们已经讨论 了如何启动 MongoDB 服 务,你只需要在 MongoDB 安装目录的 bin 目录下执行'mongod'即可。

执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。

你可以使用 MongoDB shell 来连接 MongoDB 服务器。你也可以使用 PHP 来连接 mongodb。本教程我们会使用 MongoDB shell 来连接 Mongodb 服务,之后的章节我们将会介绍如何通过 php 来连接 MongoDB 服务。

默认情况下,MongoDB 的启动端口为 27017。比 MongoDB 启动端口大 1000 的端口为 MongoDB 的 web 用户界面,你可以再浏览器中输入 http://localhost:28017 来访问 MongoDB 的 web 用户界面。

通过 shell 连接 MongoDB 服务

你可以通过执行以下命令来连接 MongoDB 的服务。

注意: localhost 为主机名,这个选项是必须的:

mongodb://localhost

当你执行以上命令时,你可以看到以下输出结果:

mongodb-connect

如果你检查从哪里连接到 MongoDB 的服务器,您可以看到如下信息:

mongodb-connected

最后一行(标记处),打印了你成功连接上 MongoDB 服务的信息。

MongoDB 连接命令格式

使用用户名和密码连接到 MongoDB 服务器,你必须使用 'username:password@hostname/dbname' 格式,'username'为用户名,'password' 为密码。

使用用户名和密码连接登陆到默认数据库:

mongodb://mongo_admin:AxB6_w3r@localhost/

以上命令中,用户 mongo_admin 使用密码 AxB6_w3r 连接到本地的 MongoDB 服务上。输出结果如下所示:

mongodb-connect-with-username-and-password-to-default-database

使用用户名和密码连接登陆到指定数据库:

连接到指定数据库的格式如下:

mongodb://mongo_admin:AxB6_w3r@localhost/w3r

更多连接实例

连接本地数据库服务器,端口是默认的。

mongodb://localhost

使用用户名 fred,密码 foobar 登录 localhost 的 admin 数据库。

mongodb://fred:foobar@localhost

使用用户名 fred,密码 foobar 登录 localhost 的 baz 数据库。

mongodb://fred:foobar@localhost/baz

连接 replica pair, 服务器 1 为 example1.com 服务器 2 为 example2。

mongodb://example1.com:27017,example2.com:27017

连接 replica set 三台服务器 (端口 27017, 27018, 和 27019):

mongodb://localhost,localhost:27018,localhost:27019

连接 replica set 三台服务器,写入操作应用在主服务器 并且分布查询到从服务器。

mongodb://host1,host2,host3/?slaveOk=true

直接连接第一个服务器,无论是 replica set 一部分或者主服务器或者从服务器。

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

当你的连接服务器有优先级,还需要列出所有服务器,你可以使用上述连接方式。

安全模式连接到 localhost:

mongodb://localhost/?safe=true

以安全模式连接到 replica set,并且等待至少两个复制服务器成功写入,超时时间设置为 2 秒。

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000

参数选项说明

标准格式:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

标准的连接格式包含了多个选项(options),如下所示:

选项描述
replicaSet=name验证 replica set 的名称。 Impliesconnect=replicaSet.
slaveOk=true|falsetrue:在 connect=direct 模式下,驱动会连接第一台机器,即使这台服务器不是主。在 connect=replicaSet 模式下,驱动会发送所有的写请求到主并且把读取操作分布在其他从服务器。 false: 在 connect=direct 模式下,驱动会自动找寻主服务器. 在 connect=replicaSet 模式下,驱动仅仅连接主服务器,并且所有的读写命令都连接到主服务器。
safe=true|ffalsetrue: 在执行更新操作之后,驱动都会发送 getLastError 命令来确保更新成功。(还要参考 wtimeoutMS). false: 在每次更新之后,驱动不会发送 getLastError 来确保更新成功。
w=n驱动添加 { w : n } 到 getLastError 命令. 应用于 safe=true。
wtimeoutMS=ms驱动添加 { wtimeout : ms } 到 getlasterror 命令. 应用于 safe=true.
fsync=true|ffalsetrue: 驱动添加 { fsync : true } 到 getlasterror 命令.应用于 safe=true. false: 驱动不会添加到 getLastError 命令中。
journal=true|ffalse如果设置 wie true, 同步到 journal (在提交到数据库前写入到实体中). 应用于 safe=true
connectTimeoutMS=ms可以打开连接的时间。
socketTimeoutMS=ms发送和接受 sockets 的时间。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文