无法通过学说连接 mongodb

Cannot connect with mongodb through doctrine

我正在和几个朋友一起去学校做一个项目。现在我正在尝试使用已经存在的 mongodb 设置我们的 symfony 项目,但是找不到它。

我正在尝试遵循官方指南,了解如何使用捆绑包 DoctrineMongoDBBundle 从 www.symfony.com 设置该组合。

我的主义:

doctrine_mongodb:
  auto_generate_proxy_classes: '%kernel.debug%'
  auto_generate_hydrator_classes: '%kernel.debug%'
  connections:
    default:
      server: "%mongodb_server%"
      options:
        username: "%mongodb_username%"
        password: "%mongodb_password%"
        authSource: "%mongodb_db%"
  default_database: "%mongodb_auth_db%"
  document_managers:
    default:
      auto_mapping: true
      mappings:
        App:
          is_bundle: false
          type: annotation
          dir: '%kernel.project_dir%/src/Document'
          prefix: App\Document\
          alias: App

取自 services.yaml

的值
parameters:
    locale: 'en'
    mongodb_server: "mongodb://mongodb:27017"
    mongodb_username: "admin"
    mongodb_password: "my_password"
    mongodb_auth_db: "admin"
    mongodb_db: "users"

我们在 docker 环境下工作,所以我的 symfony 项目和数据库在两个不同的 docker 上(我需要通过它们连接,所以 localhost 不工作)。

作为我在控制器上为用户工作的第一个功能,我试图让注册用户工作,这是我当前使用的控制器(仍然有模拟数据):

/**
 * @Route("/api/security/register", name="register")
 * @Method("GET")
 * @return JsonResponse
 */
public function registerAction(): JsonResponse
{
    $user = new User();
    $user->setUsername('test');
    $user->setEmail('test@test.test');
    $user->setPlainPassword('testtest');

    $dm = $this->get('doctrine_mongodb')->getManager();
    $dm->persist($user);
    $dm->flush();
    return new JsonResponse(array('Status' => 'OK'));
}

同样在数据库中,我想连接到有权写入 "users" 数据库的管理员用户(我想保存我的新用户)。

我尝试发送请求时出错:

request.CRITICAL:未捕获 PHP 异常 MongoConnectionException:"No suitable servers found (serverSelectionTryOnce set): [Failed to resolve 'mongodb']" 在 /var/www/html/vendor/alcaeus/mongo-php-adapter/lib/Alcaeus/MongoDbAdapter/ExceptionConverter。php 第 79 行 {"exception":“[object] (MongoConnectionException(代码:13053):找不到合适的服务器(serverSelectionTryOnce 设置):[无法在 /var/www/html/vendor/alcaeus/mongo-php-adapter/lib/Alcaeus/MongoDbAdapter/ExceptionConverter 解析 'mongodb']。php:79,MongoDB\Driver\Exception\ConnectionTimeoutException(代码:13053):找不到合适的服务器(serverSelectionTryOnce 设置):[无法在 /var/www/html/vendor/mongodb/mongodb/src/Collection 解析 'mongodb']。php:867)"} []

问题确实在我的 docker 撰写文件中,我没有将两个 docker 都连接到网络,感谢@BrucieAlpha

的帮助