Laravel 5.5 + MongoDb Atlas集群

时间:2018-08-22 02:30:32

标签: database mongodb laravel-5

我正在使用 laravel 5.5 mongodb 。我已成功将mongodb与本地系统连接。但是我试图与mongodb Atlas集群连接。我尝试了不同的方法,但是我需要一些详细的信息。 谁能解释一下DNS的格式是什么?

我正在关注 Connect laravel jenssegers to mongodb atlas cluster

我从地图集集群中复制了dsn

这是我在连接内部的配置:

'mongodb_conn' => [ 'driver' => 'mongodb', 'dsn'=>'mongodb+srv://username:password@hostname/test?retryWrites=true', 'database' => 'db_name',],

谢谢

1 个答案:

答案 0 :(得分:0)

使用DSN格式,您可以指定用于通过单个URL与Mongo连接的所有参数和配置。这包括群集URL,副本URL,身份验证数据,端口和选项。要在Mongo Atlas中获取群集的DSN URL,请执行以下操作:

单击集群上的连接按钮: connect

选择“连接您的应用程序”: application

如果您选择我正在使用驱动程序3.4或更早版本,请在此处。 您将获得如下网址:

mongodb://<USER>:<PASSWORD>@shardname00.mongodb.net:27017,shardname01.mongodb.net:27017,shardname02.mongodb.net:27017/test?ssl=true&replicaSet=replicaName&authSource=admin&retryWrites=true

在此URL中,您只需要替换用户名和密码,其余的就可以保留。

如果您选择我正在使用驱动程序3.6或更高版本。 您将获得如下网址:

mongodb+srv://<USER>:<PASSWORD>@clusterName.mongodb.net/test?retryWrites=true

请注意+srv开头。让驾驶员知道它是SRV记录,这一点很重要。

如果您的环境没有任何限制,则应该使用最新选项,因为这样可以为您提供更大的灵活性,因为以后再添加更多副本时无需更改配置。

从PHP连接时,您还应该在DSN URL的末尾添加以下参数:

serverSelectionTryOnce=false&serverSelectionTimeoutMS=30000

有关参数和连接字符串的更多信息,您可以在Mongo Docs

中找到