开心档-软件开发入门之MongoDB - 连接
本章将会讲解MongoDB - 连接
目录
启动 MongoDB 服务
在前面的教程中,我们已经讨论了如何启动 MongoDB 服务,你只需要在 MongoDB 安装目录的 bin 目录下执行 mongodb 即可。
执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。
你可以使用 MongoDB shell 来连接 MongoDB 服务器。你也可以使用 PHP 来连接 MongoDB。本教程我们会使用 MongoDB shell 来连接 Mongodb 服务,之后的章节我们将会介绍如何通过php 来连接MongoDB服务。
标准 URI 连接语法:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
- mongodb:// 这是固定的格式,必须要指定。
- username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登录这个数据库
- host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
- portX 可选的指定端口,如果不填,默认为27017
- /database如果指定username:password@,连接并验证登录指定数据库。若不指定,默认打开 test 数据库。
- ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开
标准的连接格式包含了多个选项(options),如下所示:
选项 | 描述 |
---|---|
replicaSet=name | 验证replica set的名称。 Impliesconnect=replicaSet. |
slaveOk=true|false | * true:在connect=direct模式下,驱动会连接第一台机器,即使这台服务器不是主。在connect=replicaSet模式下,驱动会发送所有的写请求到主并且把读取操作分布在其他从服务器。 * false: 在 connect=direct模式下,驱动会自动找寻主服务器. 在connect=replicaSet 模式下,驱动仅仅连接主服务器,并且所有的读写命令都连接到主服务器。 |
safe=true|false | * true: 在执行更新操作之后,驱动都会发送getLastError命令来确保更新成功。(还要参考 wtimeoutMS). false: 在每次更新之后,驱动不会发送getLastError来确保更新成功。 |
w=n | 驱动添加 { w : n } 到getLastError命令. 应用于safe=true。 |
wtimeoutMS=ms | 驱动添加 { wtimeout : ms } 到 getlasterror 命令. 应用于 safe=true. |
fsync=true|false | * true: 驱动添加 { fsync : true } 到 getlasterror 命令.应用于 safe=true. * false: 驱动不会添加到getLastError命令中。 |
journal=true|false | 如果设置为 true, 同步到 journal (在提交到数据库前写入到实体中). 应用于 safe=true |
connectTimeoutMS=ms | 可以打开连接的时间。 |
socketTimeoutMS=ms | 发送和接受sockets的时间。 |
实例
使用默认端口来连接 MongoDB 的服务。
mongodb://localhost
通过 shell 连接 MongoDB 服务:
$ ./mongo
MongoDB shell version: 4.0.9
connecting to: test
...
这时候你返回查看运行 ./mongod 命令的窗口,可以看到是从哪里连接到MongoDB的服务器,您可以看到如下信息:
……省略信息……
2015-09-25T17:22:27.336+0800 I CONTROL [initandlisten] allocator: tcmalloc
2015-09-25T17:22:27.336+0800 I CONTROL [initandlisten] options: { storage: { dbPath: "/data/db" } }
2015-09-25T17:22:27.350+0800 I NETWORK [initandlisten] waiting for connections on port 27017
2015-09-25T17:22:36.012+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:37310 #1 (1 connection now open) # 该行表明一个来自本机的连接
……省略信息……
MongoDB 连接命令格式
使用用户名和密码连接到 MongoDB 服务器,你必须使用 'username:password@hostname/dbname' 格式,'username'为用户名,'password' 为密码。
使用用户名和密码连接登录到默认数据库:
$ ./mongo
MongoDB shell version: 4.0.9
connecting to: test
使用用户 admin 使用密码 123456 连接到本地的 MongoDB 服务上。输出结果如下所示:
> mongodb://admin:123456@localhost/
...
使用用户名和密码连接登录到指定数据库,格式如下:
mongodb://admin:123456@localhost/test
更多连接实例
连接本地数据库服务器,端口是默认的。
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
相关文章
- influxDb_ef mongodb
- Mongodb基本操作与Python连接mongodb并进行基础操作的方法
- python实现爬虫数据存到 MongoDB
- 使用C语言连接MongoDB数据库(c使用mongodb)
- 打开你的单机MongoDB世界(单机mongodb)
- MongoDB集群安装快速指南(mongodb集群安装)
- 提升 MongoDB 查询性能的方法(mongodb查询性能)
- 实现PHP与MongoDB的桥梁:连接数据库(php连接mongodb)
- 解决MongoDB连接超时问题(mongodb连接超时)
- 开发MongoDB爬虫开发入门教程(mongodb爬虫)
- MongoDB拒绝访问:解决方案(mongodb拒绝连接)
- MongoDB仲裁节点:保障集群可靠性(mongodb仲裁节点)
- MongoDB单机部署实战(mongodb单机部署)
- MongoDB查看当前连接状态(mongodb查看连接)
- MongoDB连接简单实现你的数据梦想(mongodb连接)
- MongoDB统计计数:一种有效的数据组织方式(mongodb计数)
- 展开MongoDB的正则查询之旅(mongodb正则查询)
- MongoDB:不断进化的最新版本(mongodb最新版本)
- 主键MongoDB自增主键技术实现原理(mongodb自增)
- MongoDB断开连接的处理方法(mongodb关闭的连接)
- 关闭MongoDB数据库连接:安全的停止方法(mongodb关闭连接)
- 展开你的无界空间:局域网连接MongoDB(局域网连接mongodb)
- MongoDB卸载:准备便捷地释放空间(mongodb卸载)
- 快速上手:Java连接Mongodb数据库(java连接mongodb数据库)
- Mongodb长连接:高效稳定的数据传输方式(mongodb长连接)
- Mongodb快速新建表,更高效管理数据(mongodb新建表)
- 使用MongoDB客户端连接数据库,轻松管理数据(mongodb客户端连接)
- MongoDB实现海量数据存储(mongodb海量存储)
- 解决MongoDB连接失败的最佳实践(mongodb连接失败)
- nodejs使用Node.js优雅地整合MongoDB(mongodb整合)
- 极速学会C语言操作MongoDB(c操作mongodb)
- MongoDB实现文件存储功能:高效、快速的文件存储方式(mongodb存储文件)
- PHP如何正确配置MongoDB数据库连接?(php配置mongodb)
- MongoDB映射技术详解:让数据世界无缝连接(mongodb映射)
- 在命令行中连接MongoDB:一步一步学习(命令行连接mongodb)
- 轻松搭建远程MongoDB连接服务(远程连接mongodb)