Docs Menu
Docs Home
/ /

Comienza con el controlador de Scala

El controlador Scala de MongoDB es una API asíncrona basada en el controlador Java Reactive Streams, que permite conectarse a MongoDB e interactuar con los datos almacenados en la implementación. Esta guía muestra cómo crear una aplicación que utiliza el controlador Scala para conectarse a un clúster MongoDB alojado en MongoDB Atlas y consultar datos en el clúster.

Tip

MongoDB Atlas es un servicio de base de datos gestionada en la nube que aloja las implementaciones de MongoDB. Se puede crear una implementación propia gratuita de MongoDB Atlas (sin necesidad de tarjeta de crédito) siguiendo los pasos de esta guía.

Siga esta guía para conectar una aplicación Scala de ejemplo a una implementación de MongoDB Atlas. Si prefiere conectarse a MongoDB con un controlador o lenguaje de programación diferente, consulte nuestra Lista de conductores oficiales.

1

Antes de comenzar a desarrollar, asegúrese de tener las siguientes dependencias instaladas en su entorno de desarrollo:

  • JDK versión 8 o posterior

  • versiónsbt 1 o posterior

2

Ejecute el siguiente comando en su shell para crear un directorio llamado scala-quickstart Para este proyecto:

mkdir scala-quickstart

Seleccione la pestaña correspondiente a su sistema operativo y ejecute los siguientes comandos para crear un archivo build.sbt en el directorio scala-quickstart:

cd scala-quickstart
touch build.sbt
cd scala-quickstart
type nul > build.sbt
3

Navegue hasta su archivo build.sbt y agregue el siguiente código para usar el controlador Scala en su aplicación:

ThisBuild / scalaVersion := "2.13.16"
libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "5.6.1"

Este código configura su aplicación para usar la versión 2.13.16 de Scala y la versión 5.6.1 del controlador de Scala.

Después de completar estos pasos, tiene un nuevo directorio de proyecto con las dependencias de los controladores instaladas.

Se puede crear una implementación de nivel gratuito de MongoDB en MongoDB Atlas para almacenar y gestionar los datos. MongoDB Atlas aloja y gestiona la base de datos MongoDB en la nube.

1

Completa la Guía de inicio de MongoDB para configurar una nueva cuenta de Atlas y cargar datos de muestra en una nueva implementación de MongoDB de nivel gratuito.

2

Después de crear un usuario de base de datos, guardar el nombre de usuario y la contraseña de ese usuario en una ubicación segura para usarlos en un paso próximo.

Después de completar estos pasos, habrá una nueva implementación de nivel gratuito de MongoDB en Atlas, credenciales de usuario de base de datos y datos de muestra cargados en la base de datos.

Puede conectarse a su implementación de MongoDB proporcionando un URI de conexión, también llamado cadena de conexión, que instruye al controlador sobre cómo conectarse a una implementación de MongoDB y cómo comportarse mientras está conectado.

La cadena de conexión incluye el nombre de host o la dirección IP y el puerto de la implementación, el mecanismo de autenticación, las credenciales de usuario cuando sea aplicable, y las opciones de conexión.

Para saber cómo conectarse a una instancia o implementación no alojada en Atlas, consulte la Elija una guía de destino de conexión.

1

Para recuperar su cadena de conexión para la implementación que creó en el paso anterior, inicie sesión en su cuenta de Atlas y navegue hasta la Clusters Página en la sección Database. Haga clic en el botón Connect para su nueva implementación.

El botón de conexión en la sección de clústeres de la interfaz de usuario de Atlas

Si aún no tienes un usuario de base de datos configurado, MongoDB te pedirá que crees y configures un nuevo usuario.

Haga clic en el botón Drivers en la sección Connect to your application y seleccione "Scala" en el menú de selección Driver y la versión que mejor coincida con la versión que instaló en el menú de selección Version.

Asegúrate de que la opción View full code sample esté desmarcada para ver solo la cadena de conexión.

2

Haz clic en el botón a la derecha de la cadena de conexión para copiarla en el portapapeles, como se muestra en la siguiente captura de pantalla:

El botón de copia junto a la cadena de conexión en la interfaz de usuario de Atlas
3

Pega esta cadena de conexión en un archivo en tu editor de texto preferido y reemplaza el marcador de posición <db_password> con la contraseña de tu usuario de base de datos. La cadena de conexión ya está completada con el nombre de usuario de tu usuario de base de datos.

Guarda este archivo en una ubicación segura para usarlo en el siguiente paso.

Después de completar estos pasos, contarás con una cadena de conexión que corresponde a tu clúster de Atlas.

Después de recuperar la cadena de conexión para su implementación de MongoDB Atlas, puede conectarse a la implementación desde su aplicación Scala y consultar los conjuntos de datos de muestra de Atlas.

1

Navegue al scala-quickstart directorio que creó en el paso de Descarga e instalación de esta guía y cree los src/main/scala/quickstart directorios anidados.

Seleccione la pestaña correspondiente a su sistema operativo y ejecute los siguientes comandos para crear un archivo Main.scala en el subdirectorio quickstart:

cd src/main/scala/quickstart
touch Main.scala
cd src/main/scala/quickstart
type nul > Main.scala
2

Agregue el siguiente Helpers.scala archivo del código fuente del src/main/scala/quickstart controlador al directorio:

package quickstart
import java.util.concurrent.TimeUnit
import scala.concurrent.Await
import scala.concurrent.duration.Duration
import org.mongodb.scala._
object Helpers {
implicit class DocumentObservable[C](val observable: Observable[Document]) extends ImplicitObservable[Document] {
override val converter: (Document) => String = (doc) => doc.toJson
}
implicit class GenericObservable[C](val observable: Observable[C]) extends ImplicitObservable[C] {
override val converter: (C) => String = (doc) => Option(doc).map(_.toString).getOrElse("")
}
trait ImplicitObservable[C] {
val observable: Observable[C]
val converter: (C) => String
def results(): Seq[C] = Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))
def headResult() = Await.result(observable.head(), Duration(10, TimeUnit.SECONDS))
def printResults(initial: String = ""): Unit = {
if (initial.length > 0) print(initial)
results().foreach(res => println(converter(res)))
}
def printHeadResult(initial: String = ""): Unit = println(s"${initial}${converter(headResult())}")
}
}

Este archivo le permite acceder a métodos auxiliares para imprimir resultados de consultas.

3

Copie y pegue el siguiente código en el archivo Main.scala, que hace un query en la colección movies en la base de datos sample_mflix:

package quickstart
import org.mongodb.scala._
import org.mongodb.scala.model.Filters._
import Helpers._
object Main {
def main(args: Array[String]): Unit = {
val mongoClient = MongoClient("<connection string>")
val database: MongoDatabase =
mongoClient.getDatabase("sample_mflix")
val collection: MongoCollection[Document] =
database.getCollection("movies")
val filter = equal("title", "The Shawshank Redemption")
collection.find(filter).printResults()
mongoClient.close()
}
}
4

Reemplaza el marcador de posición <connection string> con la cadena de conexión que se copió del paso Crear una cadena de conexión de esta guía.

5

En el directorio raíz de su proyecto, ejecute los siguientes comandos para iniciar el shell sbt y ejecutar su aplicación:

sbt
run

La salida de la línea de comandos contiene detalles sobre el documento de película recuperado:

{"_id": {"$oid": "..."}, ... , "genres": ["Crime", "Drama"], "rated": "R",
"metacritic": 80, "title": "The Shawshank Redemption", ... }

Si encuentras un error o no ves ninguna salida, asegúrate de haber especificado la cadena de conexión correcta en el archivo Main.scala y de haber cargado los datos de muestra.

Tip

Puede salir del shell sbt ejecutando el siguiente comando:

exit

Después de completar estos pasos, tendrá una aplicación Scala que se conecta a su implementación de MongoDB, ejecuta una consulta en los datos de muestra y devuelve un documento coincidente.

¡Felicidades por completar el tutorial de inicio rápido!

En este tutorial, creó una aplicación Scala que se conecta a una implementación de MongoDB alojada en MongoDB Atlas y recupera un documento que coincide con una consulta.

Obtenga más información sobre el controlador Scala en los siguientes recursos:

  • Se puede obtener información sobre cómo realizar operaciones de lectura en la sección Leer Datos.

  • Aprende a realizar operaciones de escritura en la sección Guardar datos en MongoDB.

Nota

Si hay problemas en este paso, se deben enviar comentarios utilizando la pestaña Rate this page situada a la derecha o en la parte inferior derecha de esta página.

Puede encontrar soporte para preguntas generales mediante la etiqueta Stack Overflow de MongoDB o la comunidad de Reddit de MongoDB.

Volver

Overview