php - 将 laravel jenssegers 连接到 mongodb atlas 集群

标签 php mongodb laravel jenssegers-mongodb mongodb-atlas

我从 Mongodb atlas 开始,我试图将我的 laravel/jenssegers 项目连接到我配置我的 conf/数据库的集群

'mongodb' => [
  'driver'   => 'mongodb',
  'host'     => env('DB_HOST'),
  'port'     => env('DB_PORT', '27017'),
  'database' => env('DB_DATABASE'),
  'username' => env('DB_USERNAME'),
  'password' => env('DB_PASSWORD'),
  'options'  => [
      'database' => 'admin' // sets the authentication database required by mongo 3
  ]
  ],

还有我的 .env 文件

DB_HOST="xxxx-shard-00-00-uggj0.mongodb.net"
DB_PORT=27017
DB_DATABASE=xxx
DB_USERNAME=xxx
DB_PASSWORD=xxx

我得到了这个错误

No suitable servers found (serverSelectionTryOnce set): [connection closed calling ismaster on 'xxxx-shard-00-00-uggj0.mongodb.net:27017'

我冷连接 Mongodb Compass 没有问题。

My Atlas IP 白名单 已打开 (0.0.0.0/0)。

我错过了什么吗?

最佳答案

在 Laravel 中,如下所示在 config/database.php 中使用 'dsn' 键来提及完整的集群 url。

'mongodb_conn' => [
        'driver' => 'mongodb',
        'dsn'=>'mongodb://username:password@host1,host2/database?ssl=true&replicaSet=replicaSet&authSource=admin',
        'database' => 'my_data',
    ]

关于php - 将 laravel jenssegers 连接到 mongodb atlas 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44979599/

相关文章:

Laravel 圣殿 : How to configure the expiration date of the token?

javascript - 将 JSON 字符串转换为对象并显示为 HTML 表格

javascript - 你如何以 Angular 传递帖子ID?

php - Symfony2 为什么模板呈现为字符串?

php - 找出记录的可用日期中最大的日期,然后将输出映射到其他类似的输出以找到所有日期中的最大日期

mongodb - 使用 $text 搜索从 mongoDB 数组中获取特定元素

node.js - 蒙戈错误: connect UNKNOWN

php - unlink()如何找到要删除的文件?

php - 使用 PHP 配置邮件服务器

node.js - replicaset vs multi-mongos vs 多个连接