Primeros pasos con mongodb-java
En esta página
Instalación o configuración
Requisito previo
Un servidor MongoDB en ejecución, más detalles sobre eso [aquí] (https://www.wikiod.com/es/mongodb/primeros-pasos-con-mongodb).
Configuración de un proyecto Java
El controlador Java de MongoDB se proporciona como un archivo JAR y se puede incluir en un proyecto como cualquier otro JAR. Por ejemplo:
- Maven: agregue una entrada a la sección
<dependencias>
de supom.xml
.
org.mongodb mongo-java-controlador 3.4.2
- Gradle: agrega la siguiente dependencia a tu
build.gradle
compila 'org.mongodb:mongo-java-driver:3.4.2'
- Inclusión manual: descargue el archivo JAR desde aquí y agréguelo al classpath de su proyecto.
Nota: la versión que se muestra en los ejemplos anteriores es la última versión estable en el momento de escribir este artículo, pero puede elegir cualquier versión disponible [aquí](http://search.maven.org/#search%7Cga%7C1%7Corg.mongodb %3A%3Amongo-java-driver).
Uso del controlador Java de MongoDB
Vamos a crear un MongoClient
, la invocación más simple es:
MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
Esto supone que el servidor MongoDB se ejecuta en localhost en el puerto predeterminado y que no es seguro. Existen numerosas variantes de esto para el acceso autenticado, opciones de conexión personalizadas, conexión a conjuntos de réplicas y clústeres fragmentados, todo cubierto en detalle en los [documentos del controlador Java de Mongo DB] (http://mongodb.github.io/mongo-java-driver/ 3.4/driver/tutorials/connect-to-mongodb/).
Ahora que estamos conectados, creemos una base de datos y una colección. MongoDB crea implícitamente una colección cuando se guarda el primer documento, así que hagámoslo:
MongoDatabase database = mongoClient.getDatabase("starter");
MongoCollection<Document> collection = database.getCollection("superheroes");
Document document = new Document("name", "Superman");
collection.insertOne(document);
Nota: puede [crear explícitamente una colección] (http://mongodb.github.io/mongo-java-driver/3.4/driver/tutorials/databases-collections/) pero el uso anterior es más común y ciertamente encaja mejor con un tema de ‘primeros pasos’.
Ahora veamos si podemos encontrar el documento que creamos:
FindIterable<Document> documents = purchases.find(Filters.eq("name", "Superman"));
for (Document found : documents) {
System.out.println(found.toJson());
}
El código anterior generará lo siguiente (el campo _id
es la clave de documento generada automáticamente por MongoDB):
Documento encontrado: { “_id” : { “$oid” : “5981bd586d47c203904a9cf9” }, “name” : “Superman” }
Ahora que hemos verificado que creamos correctamente un documento, eliminémoslo:
DeleteResult deleteResult = purchases.deleteOne(Filters.eq("name", "Superman"));
System.out.println(String.format("Deleted %s document(s)", deleteResult.getDeletedCount()));
El código anterior generará lo siguiente:
Borrado 1 documento(s)
Ejemplo Completo
Juntando las distintas piezas obtenemos:
import com.google.common.collect.Lists;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;
import org.bson.Document;
import java.util.List;
public class IntroducingTheMongoDBJavaDriver {
public static void main(String... args) throws Exception {
MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
MongoCollection<Document> superheroes = mongoClient.getDatabase("starter").getCollection("superheroes");
Document document = new Document("name", "Superman");
superheroes.insertOne(document);
FindIterable<Document> documents = superheroes.find(Filters.eq("name", "Superman"));
for (Document found : documents) {
System.out.println(String.format("Found document: %s", found.toJson()));
}
DeleteResult deleteResult = superheroes.deleteOne(Filters.eq("name", "Superman"));
System.out.println(String.format("Deleted %s document(s)", deleteResult.getDeletedCount()));
long count = superheroes.count();
System.out.println(String.format("Number of superheroes: %s", count));
}
}