import com.mongodb.ConnectionString; import com.mongodb.MongoClientSettings; import com.mongodb.MongoException; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoCollection; import org.bson.Document; import java.util.List; public class MongoDBEjemploConectaryCrud { public static void main(String[] args) { // Cadena de conexión a MongoDB Atlas String cadenaConexion = "mongodb+srv://MACARENA:XnUKVeI5VcNE4LK1@clusterdam2025.9q7lm.mongodb.net/?retryWrites=true&w=majority&appName=ClusterDAM2025"; // Configuración del cliente MongoDB utilizando la cadena de conexión MongoClientSettings configuracion = MongoClientSettings.builder() .applyConnectionString(new ConnectionString(cadenaConexion)) .build(); try (MongoClient clienteMongo = MongoClients.create(configuracion)) { try { // Enviar un ping para confirmar que la conexión fue exitosa MongoDatabase baseDatos = clienteMongo.getDatabase("admin"); baseDatos.runCommand(new Document("ping", 1)); System.out.println("¡Ping a tu despliegue exitoso! Te conectaste correctamente a MongoDB."); // Preguntar por las bases de datos disponibles antes de hacer cualquier otra acción System.out.println("\nLista de bases de datos disponibles:"); clienteMongo.listDatabaseNames().forEach(System.out::println); // Aquí ya puedes elegir o especificar una base de datos que quieras usar MongoDatabase baseDatosSeleccionada = clienteMongo.getDatabase("Peliculas"); // Cambia a tu base de datos System.out.println("\nBase de datos seleccionada: " + baseDatosSeleccionada.getName()); // Mostrar las colecciones dentro de la base de datos seleccionada System.out.println("\nLista de colecciones en la base de datos '" + baseDatosSeleccionada.getName() + "':"); baseDatosSeleccionada.listCollectionNames().forEach(System.out::println); // Mostrar los documentos dentro de una colección específica MongoCollection coleccion = baseDatosSeleccionada.getCollection("ColeccionPeliculas"); // Cambia a tu colección System.out.println("\nDocumentos en la colección '" + coleccion.getNamespace().getCollectionName() + "':"); // Usar el for-each para recorrer los documentos de la colección for (Document doc : coleccion.find()) { // Mostrar el contenido del documento de forma comprensible System.out.println("\nContenido del documento:"); for (String clave : doc.keySet()) { // Comprobar si el valor es un Array o una referencia de otro Document Object valor = doc.get(clave); if (valor instanceof Document) { // Si es un objeto Document, recorrer sus claves System.out.println(clave + ": "); Document subDoc = (Document) valor; for (String subClave : subDoc.keySet()) { System.out.println(" " + subClave + ": " + subDoc.get(subClave)); } } else if (valor instanceof List) { // Si es un Array (List), mostrar sus elementos System.out.println(clave + ": "); List lista = (List) valor; for (Object item : lista) { System.out.println(" - " + item); } } else { // Si es un valor normal, imprimir directamente System.out.println(clave + ": " + valor); } } } } catch (MongoException e) { e.printStackTrace(); } } } }