1. 概述
本篇文章使用MongoDB shell来连接MongoDB服务,标准的URI连接语法:
1 | mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]] |
mongodb://:协议头,表示使用 MongoDB。
[username:password@]:(可选)认证信息,包括用户名和密码。
host1[:port1][,…hostN[:portN]]:服务器地址和端口,可以是一个或多个 MongoDB 服务器的地址和端口。
/[defaultauthdb]:(可选)默认认证数据库。
[?options]:(可选)连接选项。
标准的连接格式包含了多个选项(options),如下所示:
authSource:指定认证数据库。
replicaSet:指定副本集的名称。
ssl:启用 SSL 连接(true 或 false)。
readPreference:指定读偏好,如 primary, primaryPreferred, secondary, secondaryPreferred, nearest。
connectTimeoutMS:指定连接超时时间(毫秒)。
socketTimeoutMS:指定套接字超时时间(毫秒)。
2. 连接方式
连接到本地 MongoDB 实例(默认端口 27017):
1
mongodb://localhost
连接到本地MongoDB实例,指定数据库
1
mongodb://localhost/mydatabase
使用用户名和密码连接到本地MongoDB实例
1
mongodb://username:password@localhost/mydatabase
连接到远程的MongoDB实例
1
mongodb://remotehost:27017
连接到副本集(Replica Set)
1
mongodb://host1:27017,host2:27017,host3:27017/mydatabase?replicaSet=myReplicaSet
使用 SSL 连接到 MongoDB:
1
mongodb://username:password@localhost:27017/mydatabase?ssl=true
使用多个选项连接
1
mongodb://username:password@localhost:27017/mydatabase?authSource=admin&ssl=true
2.1 更多连接实例
- 连接本地数据库服务器,端口是默认的
1
mongodb://localhost
- 使用用户名fred,密码foobar登录localhost的admin数据库
1
mongodb://fred:foobar@localhost
- 连接 replica pair, 服务器1为example1.com服务器2为example2
1
mongodb://example1.com:27017,example2.com:27017
- 连接 replica set 三台服务器, 写入操作应用在主服务器 并且分布查询到从服务器
1
mongodb://host1,host2,host3/?slaveOk=true
- 安全模式连接到localhost
1
mongodb://localhost/?safe=true
- 以安全模式连接到replica set,并且等待至少两个复制服务器成功写入,超时时间设置为2秒
1
mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000
3. Java连接
1 | import com.mongodb.client.MongoClient; |
4. Python(PyMongo)连接
1 | from pymongo import MongoClient |
5. Node.js(Mongoose)连接
1 | const mongoose = require('mongoose'); |
6. PHP(Mongoose)连接
1 | <?php |