Overview
En esta guía, puedes aprender cómo usar bases de datos y colecciones de MongoDB con el controlador Java de MongoDB.
MongoDB organiza los datos en una jerarquía de los siguientes niveles:
Databases
Colecciones
Documentos
Las bases de datos son el nivel superior de organización de datos en una instancia de MongoDB. Las bases de datos se organizan en colecciones que contienen documentos. Los documentos contienen datos literales como cadenas, números y fechas, así como otros documentos (incrustados). Para obtener más información sobre los tipos y la estructura de los campos de documentos, consulta la documentación del servidor de documento.
Acceder a una base de datos
Usa el getDatabase() método de un MongoClient instancia para acceder a un MongoDatabase en una instancia de MongoDB.
El siguiente ejemplo accede a una base de datos llamada testDatabase:
MongoDatabase database = mongoClient.getDatabase("testDatabase");
Acceder a una colección
Utiliza el método getCollection() de una instancia MongoDatabase para acceder a una MongoCollection en una base de datos de tu instancia conectada de MongoDB.
El siguiente ejemplo accede a una colección denominada testCollection desde un MongoDatabase:
MongoDatabase database = mongoClient.getDatabase("testDatabase"); MongoCollection<Document> collection = database.getCollection("testCollection");
Tip
Si el nombre de la colección proporcionado no existe en la base de datos, MongoDB crea implícitamente la colección la primera vez que insertas datos en esa colección.
Crear una colección
Usa el método createCollection() de una instancia MongoDatabase para crear una colección en una base de datos de tu instancia conectada de MongoDB.
El siguiente ejemplo crea una colección llamada exampleCollection:
database.createCollection("exampleCollection");
Puedes especificar opciones de colección como tamaño máximo y reglas de validación de documentos utilizando la clase CreateCollectionOptions. El método createCollection() acepta una instancia de CreateCollectionOptions como segundo parámetro opcional.
Validación de documentos
La validación de documentos proporciona la capacidad de validar documentos contra una serie de filtros durante los registros en una colección. Puede especificar estos filtros utilizando la clase OpcionesDeValidación, que acepta una serie de Filtros que especifican las reglas y expresiones de validación:
ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("commander"), Filters.exists("first officer"))); database.createCollection("ships", new CreateCollectionOptions().validationOptions(collOptions));
Para obtener más información, consulte la documentación del servidor sobre validación de documentos.
Obtén una lista de colecciones
Puede query una lista de colecciones en una base de datos utilizando el MongoDatabase.listCollectionNames() método:
for (String name : database.listCollectionNames()) { System.out.println(name); }
Descarta una colección
Puedes remover una colección de la base de datos utilizando el MongoCollection.drop() método:
MongoCollection<Document> collection = database.getCollection("bass"); collection.drop();
Advertencia
Eliminar una colección borra todos los datos de la colección
Eliminar una colección de tu base de datos también borra permanentemente todos los documentos dentro de esa colección y todos los índices de esa colección. Solo elimine colecciones que contienen datos que ya no se necesitan.
Descartar una base de datos
Puedes remover una base de datos de tu instancia de MongoDB mediante MongoDatabase.drop() método, como se muestra en el siguiente ejemplo:
MongoDatabase database = mongoClient.getDatabase("testDatabase"); database.drop();
Advertencia
Borrar una base de datos borra todos los datos de la base de datos.
Borrar una base de datos borra permanentemente todas las colecciones, documentos e índices dentro de esa base de datos.
Descarta una base de datos solo si los datos que contiene ya no son necesarios.
Especificar preferencias de lectura, niveles de consistencia de lectura y niveles de confirmación de escritura (write concern)
Las preferencias de lectura, los niveles de consistencia de lectura y los niveles de confirmación de escritura (write concern) controlan cómo el driver enruta las operaciones de lectura y espera el reconocimiento para las operaciones de lectura y escritura cuando está conectado a un conjunto de réplicas de MongoDB. Las preferencias de lectura y los niveles de consistencia de lectura se aplican a todas las operaciones de lectura; los niveles de confirmación de escritura (write concern) se aplican a todas las operaciones de escritura.
MongoDatabase las instancias heredan su configuración de nivel de confirmación de escritura (write concern), nivel de consistencia de lectura y write preference del MongoClient utilizado para crearlas. Las instancias de MongoCollection heredan sus configuraciones de nivel de confirmación de escritura (write concern), nivel de consistencia de lectura y preferencia de escritura del MongoDatabase utilizado para crearlas. Sin embargo, puede usar los siguientes métodos para obtener una instancia de un MongoDatabase o MongoCollection con una preferencia de lectura, nivel de consistencia de lectura o nivel de confirmación de escritura (write concern) que difiera de la configuración que normalmente heredarían:
Tip
Los métodos withReadConcern(), withReadPreference() y withWriteConcern crean una nueva instancia de un MongoDatabase o MongoCollection con la preferencia o inquietud deseadas. El MongoDatabase o MongoCollection en el que se llama al método conserva su configuración original de preferencias y preocupaciones.
Para obtener más información, consulte la documentación del servidor sobre preferencias de lectura, niveles de consistencia de lectura y niveles de confirmación de escritura (write concern).