Categoría:MongoDB

De ChuWiki


MongoDB: Introducción[editar]

MongoDB es una base de datos NoSQL de código abierto que ha ganado popularidad en el mundo de la programación por su capacidad para almacenar, recuperar y gestionar datos de manera flexible y escalable. En este tutorial, exploraremos qué es MongoDB, sus características clave y proporcionaremos un ejemplo de uso desde Java.

¿Qué es MongoDB?[editar]

MongoDB es una base de datos NoSQL que se basa en un modelo de datos de documentos. A diferencia de las bases de datos relacionales, que almacenan datos en tablas, MongoDB almacena datos en documentos BSON (Binary JSON) que son flexibles y autocontenidos. Esto significa que cada documento puede tener campos diferentes y anidarse de manera profunda.

Características clave de MongoDB[editar]

  1. Esquema flexible: MongoDB no requiere un esquema rígido, lo que facilita la evolución de los datos a medida que cambian los requisitos.
  2. Escalabilidad: MongoDB es altamente escalable. Puede manejar grandes cantidades de datos y crecer horizontalmente a medida que aumentan las demandas.
  3. Consultas avanzadas: Soporta consultas ricas, incluyendo búsqueda de texto completo, geoespaciales y agregación de datos.
  4. Alta disponibilidad: Ofrece capacidades de replicación y fragmentación para garantizar la disponibilidad y la tolerancia a fallos.
  5. Código abierto y comunidad activa: MongoDB es de código abierto y tiene una comunidad activa que proporciona soporte y mejoras constantes.

Ejemplo de uso de MongoDB en Java[editar]

Supongamos que deseamos construir una aplicación Java simple que almacene información de usuarios en una base de datos MongoDB. Primero, asegúrate de tener MongoDB instalado y ejecutándose en tu máquina o en un servidor remoto. Luego, sigue estos pasos:

Configuración del proyecto Maven[editar]

Para comenzar, crea un proyecto Java y agrega la dependencia de MongoDB en tu archivo `pom.xml` si estás utilizando Maven:

   <dependency>
       <groupId>org.mongodb</groupId>
       <artifactId>mongodb-driver-sync</artifactId>
       <version>4.11.0</version>
   </dependency>

Conexión a MongoDB[editar]

Crea una clase de utilidad para gestionar la conexión a la base de datos:

   import com.mongodb.client.MongoClient;
   import com.mongodb.client.MongoClients;
   import com.mongodb.client.MongoDatabase;

   public class MongoDBUtil {
       private static final String DATABASE_NAME = "miBaseDeDatos";
       private static final String MONGO_URI = "mongodb://localhost:27017";

       public static MongoDatabase connect() {
           MongoClient mongoClient = MongoClients.create(MONGO_URI);
           return mongoClient.getDatabase(DATABASE_NAME);
       }
   }

Insertar datos[editar]

Ahora puedes insertar datos en la base de datos:

   import com.mongodb.client.MongoCollection;
   import org.bson.Document;

   public class UsuarioDAO {
       private MongoCollection<Document> collection;

       public UsuarioDAO() {
           MongoDatabase database = MongoDBUtil.connect();
           collection = database.getCollection("usuarios");
       }

       public void insertarUsuario(String nombre, int edad) {
           Document usuario = new Document("nombre", nombre)
                   .append("edad", edad);
           collection.insertOne(usuario);
       }
   }

Consulta de datos[editar]

Puedes recuperar datos de la base de datos:

   import com.mongodb.client.MongoCursor;

   public class UsuarioDAO {
       // ... (código previo)

       public void consultarUsuarios() {
           MongoCursor<Document> cursor = collection.find().iterator();
           try {
               while (cursor.hasNext()) {
                   Document usuario = cursor.next();
                   System.out.println(usuario.toJson());
               }
           } finally {
               cursor.close();
           }
       }
   }

Este es un ejemplo básico de cómo utilizar MongoDB en Java para almacenar y recuperar datos. Puedes expandir esta aplicación para incluir operaciones más avanzadas y explorar las características adicionales que MongoDB ofrece, como consultas geoespaciales y agregación de datos.