MongoDB基础:连接数据库的写法
首先
在MongoDB的官方手册中有关于连接到数据库的写法,但有时候由于疏忽可能会导致错误。
错误示例
1. 服务未启动 OR 已启动的MongoDB IP不是localhost,而是另一台服务器。
Error when connecting to the databaseMongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
数据库名后面多了一个多余的 “/”。
Error when connecting to the databaseMongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoError: Invalid database name: 'mydb/']
如果存在认证,但未指定认证数据库。
Error when connecting to the databaseMongoNetworkError: failed to connect to server [10.0.87.26:27017] on first connect [MongoError: Authentication failed.]
在集群的情况下,可能是副本集名称不正确,或者是集群本身存在异常。
Error when connecting to the databaseMongoError: no primary found in replicaset or invalid replica set name
写作方式 (xiě zuò
mongodb://[username:password@]host1[:port1][,…hostN[:portN]][/[database][?options]]
MongoDB的连接字符串格式为:mongodb://[用户名:密码@]主机1[:端口1][,…主机N[:端口N]][/[数据库][?选项]]。
样本
本地主机
mongodb://本地主机:27017
数据库指定
mongodb://本地主机:27017/我的数据库
在管理员数据库中进行身份验证
mongodb://user:password@localhost:27017/?authSource=admin 翻译为中文为:
mongodb://用户:密码@localhost:27017/?authSource=admin
有一个名为dbs的副本集。
mongodb://IP1:27017,IP2:27017,IP3:27017/?replicaSet=dbs 可以被翻译为: “mongodb://IP1:27017,IP2:27017,IP3:27017/?replicaSet=dbs”
驗證 + 副本集
mongodb://user:password@IP1:27017,IP2:27017,IP3:27017/?replicaSet=dbs&authSource=admin
mongodb://user:password@IP1:27017,IP2:27017,IP3:27017/?replicaSet=dbs&authSource=admin
可以控制其他参数的各种方式。
手册网址:https://docs.mongodb.com/manual/reference/connection-string/
以上