How does this work for connections to replication sets?
Does the connection string become:
"mongodb://user:password@server1:27017,server2:27017,server3:27017"
Si MongoDB se inicia con las opciones --auth o --keyFile, se debe autenticar antes de poder realizar cualquier operación con el controlador. Se podría autenticar una conexión especificando el nombre de usuario y la contraseña, o bien en el URI de conexión, o bien en las opciones "username" y "password" de MongoClient::__construct().
Ejemplo #1 Autenticación en la base de datos "admin"
<?php
// Especificar el nombre de usuario y la contraseña en el URI de conexión (preferido)
$m = new MongoClient("mongodb://${username}:${password}@localhost");
// Especificar el nombre de usuario y la contraseña mediante el array de opciones (alternativa)
$m = new MongoClient("mongodb://localhost", array("username" => $username, "password" => $password));
?>
Por omisión, el controlador autenticará en la base de datos admin. Se podría autenticar en una base de datos diferente especificándola en el URI de conexión o en la opción "db" de MongoClient::__construct().
Ejemplo #2 Autenticación en bases de datos normales
<?php
// Especificar la base de datos de autenticación en la URI de conexión (preferido)
$m = new MongoClient("mongodb://${username}:${password}@localhost/myDatabase");
// Especificar la base de datos de autenticación mediante el array de opciones (alternativa)
$m = new MongoClient("mongodb://${username}:${password}@localhost", array("db" => "myDatabase"));
?>
Si la conexión se your connection is dropped, the driver will automatically attempt to reconnect and reauthenticate you.
How does this work for connections to replication sets?
Does the connection string become:
"mongodb://user:password@server1:27017,server2:27017,server3:27017"
For connecting to a replica set with authentication it is possible to use a connection string like the following (substitute the port numbers, replica set name and DB with your own)
$m = new MongoClient("mongodb://${username}:${password}@localhost:27037,mongodb://${username}:${password}@localhost:27038",
array("replicaSet" => "test"_replica, "db" => "mytestdb"));
The second member string "mongodb://${username}:${password}@localhost:27038" does not need the username and password - however, if the connection to the first member fails I have not tested to see if the username and password persist to the second member.