Overview
Esta página contiene ejemplos de código que muestran cómo conectar su aplicación PHP a MongoDB con varias configuraciones.
Tip
Para obtener más información sobre las opciones de conexión de esta página, consulta el enlace proporcionado en cada sección.
Para utilizar un ejemplo de conexión de esta página, copie el ejemplo de código en el
Aplicación de muestra o su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición en los ejemplos de código, como
<hostname>, con los valores relevantes para su implementación de MongoDB.
Aplicación de muestra
Puede utilizar la siguiente aplicación de muestra para probar los ejemplos de código en esta página. Para usar la aplicación de muestra, siga los siguientes pasos:
Asegúrese de tener la biblioteca PHP de MongoDB instalada en su proyecto. Para obtener más información sobre la instalación de la biblioteca PHP de MongoDB, consulte Guíade descarga e instalación.
Copia el siguiente código y pégalo en un nuevo archivo
.php.Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.
1 2 3 require __DIR__ . '/../vendor/autoload.php'; 4 5 // Start example code here 6 7 // End example code here 8 9 try { 10 $client->test->command(['ping' => 1]); 11 echo 'Successfully pinged the MongoDB server.', PHP_EOL; 12 } catch (MongoDB\Driver\Exception\RuntimeException $e) { 13 printf("Failed to ping the MongoDB server: %s\n", $e->getMessage()); 14 }
Importante
Codificación porcentual
Debes codificar con porcentajeUn nombre de usuario y una contraseña antes de incluirlos en una URI de MongoDB. Puede usar el rawurlencode() método para codificar estos valores según la sintaxis de URI especificada en la RFC.3986 No utilice la codificación porcentual para el nombre de usuario ni la contraseña al pasarlos como parámetro de matriz de opciones al MongoDB\Client constructor.
Conexión
Atlas
El siguiente código muestra cómo conectarse a una implementación de MongoDB Atlas:
$uri = '<Atlas connection string>'; $client = new MongoDB\Client($uri);
Para obtener más información sobre cómo conectarse a una implementación de Atlas, consulte Atlas en la guía de Objetivos de conexión.
Implementación local
El siguiente código muestra cómo conectarse a una implementación local de MongoDB:
$uri = 'mongodb://localhost:27017/'; $client = new MongoDB\Client($uri);
Nota
Si no se especificas el parámetro $uri, el URI de conexión se establece en 'mongodb://127.0.0.1:27017' por defecto.
Para obtener más información sobre cómo conectarse a una implementación local, consulte Implementaciones locales en la guía Destinos de conexión.
Set de réplicas
El siguiente código muestra cómo conectarse a una implementación de conjunto de réplicas:
$client = new MongoDB\Client( 'mongodb://<replica set member>:<port>/', ['replicaSet' => '<replica set name>'], );
$uri = 'mongodb://<replica set member>:<port>/?replicaSet=<replica set name>'; $client = new MongoDB\Client($uri);
Tip
Para mantener su conexión a una implementación de conjunto de réplicas cuando un host está inactivo, puede proporcionar varios miembros del conjunto de réplicas en el URI de conexión.
Para obtener más información sobre cómo conectarse a un conjunto de réplicas, consulte Conjuntos de réplicas en la guía Destinos de conexión.
Stable API
El siguiente código muestra cómo habilitar la API estable para la conexión a su instancia de MongoDB:
$driverOptions = ['serverApi' => new MongoDB\Driver\ServerApi('1')]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', [], $driverOptions, );
Para obtener más información sobre la API estable, consulte la guía Conectar con la API estable.
Compresión de la red
El siguiente código muestra cómo especificar los algoritmos de compresión Snappy, Zlib y Zstandard para una conexión:
$client = new MongoDB\Client( 'mongodb://<hostname>:<port>', ['compressors' => 'snappy,zstd,zlib'], );
$uri = 'mongodb://<hostname>:<port>/?compressors=snappy,zstd,zlib'; $client = new MongoDB\Client($uri);
Para obtener más información sobre la compresión de red, consulte la guía Comprimir tráfico de red.