Overview
Para conectarte a una implementación de MongoDB, necesitas dos cosas:
Una URI de conexión, también conocida como cadena de conexión, que le indica al controlador Scala a qué implementación de MongoDB conectarse.
Un objeto MongoClient, que crea la conexión y le permite realizar operaciones en la implementación de MongoDB.
También puedes utilizar MongoClientSettings para personalizar la forma en que se comporta el controlador Scala mientras está conectado a MongoDB.
Esta guía muestra cómo crear una cadena de conexión y usar un objeto MongoClient para realizar la conexión a MongoDB.
URI de conexión
Una cadena de conexión estándar incluye los siguientes componentes:
Componente | Descripción |
|---|---|
| Requerido. Un prefijo que identifica esto como un string en el formato de conexión estándar. |
| Opcional. Credenciales de autenticación. Si las incluye, el cliente autentica al usuario con la base de datos especificada en |
| Requerido. El host y el número de puerto opcional donde se ejecuta MongoDB. Si no incluyes el número de puerto, el controlador utiliza el puerto por defecto, |
| Opcional. La base de datos de autenticación que se debe usar si la cadena de conexión incluye las credenciales de autenticación |
| Opcional. Un string de la query que especifica opciones específicas de conexión como pares |
Para obtener más información sobre cómo crear una cadena de conexión, consulte Cadenas de conexión en el manual del servidor MongoDB.
Ejemplo de Conexión de Atlas
Para conectarse a una implementación de MongoDB en Atlas, primero debe crear un cliente.
Puede pasar una URI de conexión como una cadena al método MongoClient.create() para conectarse a una instancia de MongoDB:
// Replace the placeholder with your Atlas connection string val connectionString = "<connection string>" // Create a new client and connect to the server val mongoClient = MongoClient(connectionString) val database = mongoClient.getDatabase("sample_mflix")
También puede crear un cliente con las configuraciones deseadas pasando un objeto MongoClientSettings a un objeto MongoClient.
Para instanciar un objeto MongoClientSettings, llame al método builder(), luego encadene el método applyConnectionString() y pase su cadena de conexión. También puede usar el método builder() para especificar otras opciones del cliente. Una vez que tenga la configuración deseada, llame al método build().
Puedes configurar la opción de cliente de Stable API para evitar cambios disruptivos al actualizar a una nueva versión del servidor. Para obtener más información sobre la funcionalidad Stable API, consulta la página Stable API.
El siguiente código muestra cómo se puede especificar la cadena de conexión y la opción de cliente de la Stable API al conectarse a una implementación de MongoDB en Atlas y verificar que la conexión sea exitosa:
import com.mongodb.{ServerApi, ServerApiVersion} import org.mongodb.scala.{ConnectionString, MongoClient, MongoClientSettings} import org.mongodb.scala.bson.Document import scala.concurrent.Await import scala.concurrent.duration.DurationInt import scala.util.Using object MongoClientConnectionExample { def main(args: Array[String]): Unit = { // Replace the placeholder with your Atlas connection string val connectionString = "<connection string>" // Construct a ServerApi instance using the ServerApi.builder() method val serverApi = ServerApi.builder.version(ServerApiVersion.V1).build() val settings = MongoClientSettings .builder() .applyConnectionString(ConnectionString(connectionString)) .serverApi(serverApi) .build() // Create a new client and connect to the server Using(MongoClient(settings)) { mongoClient => // Send a ping to confirm a successful connection val database = mongoClient.getDatabase("admin") val ping = database.runCommand(Document("ping" -> 1)).head() Await.result(ping, 10.seconds) System.out.println("Pinged your deployment. You successfully connected to MongoDB!") } } }
Documentación de la API
Para obtener más información sobre cómo crear un objeto MongoClient con el controlador Scala, consulte la siguiente documentación de API: