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/

以上

广告
将在 10 秒后关闭
bannerAds