Todo lo que necesita saber sobre el cliente MongoDB



Este artículo le proporcionará un conocimiento detallado y completo de MongoDB Client con todas sus características y usos.

Si ha sido alguna forma de sistema de administración de bases de datos relacionales durante algún tiempo, probablemente se haya encontrado con el nombre de . Presentado por primera vez en el año 2009, hoy mongoDb es uno de los sistemas de administración de bases de datos relacionales más populares de la industria. La razón principal detrás de su loca popularidad a pesar de la presencia de administradores de software de bases de datos relacionales más antiguos como MySql presentes en el mercado es la gran cantidad de números y la gran versatilidad que aporta. El uso de MongoDB elimina muchas necesidades, una de ellas es la necesidad de crear una base de datos y definir el tipo de datos cada vez que se inicia un nuevo proyecto. Agenda del artículo del cliente de MongoDB:





Pero para lograr la máxima funcionalidad de MongoDB, es necesario estar familiarizado con el cliente MongoDB y en este artículo, discutiremos precisamente eso.

Requisitos previos para el cliente MongoDB

Para poder leer este artículo en su totalidad, primero deberá cumplir con los siguientes requisitos previos.



Tenga un IDE ya presente en su sistema.
Java Development Kit o JDK versión 1.8 y superior instalado con JAVA_HOME configurado correctamente.
Docker o MongoDB instalado.
Apache Maven versión 3.5.3 y superior.

cómo convertirse en desarrollador de tableau

La arquitectura que hemos creado y utilizado en esta guía es una de las más simples. Cuando se ejecuta, el usuario puede agregar fácilmente datos y elementos en una lista, después de lo cual se actualizará automáticamente en la base de datos.

Logotipo del cliente MongoDB



Junto con esto, nos hemos asegurado de que toda la comunicación entre los datos y el servidor sea en JSON y todos los datos estén almacenados en MongoDB.

Empezando

Para comenzar con este proyecto, siga los pasos que se describen a continuación.

Paso # 1: Creando el proyecto en Maven

El primer paso es siempre crear un nuevo proyecto y para ello, utilice el siguiente código.

mvn io.quarkus: quarkus-maven-plugin: 0.22.0: create -DprojectGroupId = org.acme -DprojectArtifactId = using-mongodb-client -DclassName = 'org.acme.rest.json.FruitResource' -Dpath = '/ fruits '-Dextensions =' resteasy-jsonb, mongodb-client '

Cuando ejecute el comando anterior, el IDE importará los clientes JSON-B, MongoDb y RESTEasy / JAX-RS a su sistema.

Continuando con el paso 2.

Paso # 2: agregando su primer servicio de descanso JSON

Para hacer esto, use el siguiente código. paquete org.acme.rest.json import java.util.Objects public class Fruit {nombre de cadena privada descripción de cadena privada public Fruit () {} fruta pública (nombre de cadena, descripción de cadena) {this.name = nombre this.description = descripción } public String getName () {return name} public void setName (String name) {this.name = name} public String getDescription () {return description} public void setDescription (String description) {this.description = descripción} @Override public boolean equals (Object obj) {if (! (obj instanceof Fruit)) {return false} Fruit other = (Fruit) obj return Objects.equals (other.name, this.name)} @Override public int hashCode () {return Objects.hash (this.name)}}

Con el ejemplo anterior, primero hemos creado la fruta que luego se usará en el programa.

fusionar ordenación en c ++

A continuación, debemos crear el archivo org.acme.rest.json.FruitService que será la capa de usuario de nuestra aplicación. Para hacer esto, use el siguiente código.

package org.acme.rest.json import com.mongodb.client.MongoClient import com.mongodb.client.MongoCollection import com.mongodb.client.MongoCursor import org.bson.Document import javax.enterprise.context.ApplicationScoped import javax.inject .Inject import java.util.ArrayList import java.util.List @ApplicationScoped public class FruitService {@Inject MongoClient mongoClient public List list () {List list = new ArrayList () MongoCursor cursor = getCollection (). Find (). Iterator ( ) try {while (cursor.hasNext ()) {Document document = cursor.next () Fruit fruit = new Fruit () fruit.setName (document.getString ('nombre')) fruit.setDescription (document.getString ('descripción ')) list.add (fruta)}} finalmente {cursor.close ()} lista de retorno} public void add (fruta fruta) {Documento documento = nuevo Documento () .append (' nombre ', fruta.getName ()) .append ('descripción', fruit.getDescription ()) getCollection (). insertOne (documento)} private MongoCollection getCollection () {return mongoClient.getDatabase ('fruit'). getCol lection ('fruit')}} Ahora necesitamos editar la clase org.acme.rest.json.FruitResource para satisfacer nuestras necesidades. Para hacer esto, use el siguiente código. @Path ('/ fruits') @Produces (MediaType.APPLICATION_JSON) @Consumes (MediaType.APPLICATION_JSON) public class FruitResource {@Inject FruitService fruitService @GET public List list () {return fruitService.list ()} @POST public List add (Fruit fruit) {fruitService.add (fruit) return list ()}}

Continuando con el paso 3.

Paso # 3: configurar la base de datos mongoDb

La sintaxis y el código estándar para configurar la base de datos mongoDb son los que se indican a continuación.

# configurar el cliente mongoDB para un conjunto de réplicas de dos nodos quarkus.mongodb.connection-string = mongodb: // mongo1: 27017, mongo2: 27017

En nuestro caso, haremos uso del siguiente código para configurar la base de datos.

# configurar el cliente mongoDB para un conjunto de réplicas de dos nodos quarkus.mongodb.connection-string = mongodb: // localhost: 27017

Continuando con el paso 4.

Paso # 4: Ejecutar la base de datos MongoDB configurada

El siguiente paso es ejecutar la base de datos MongoDB que acabamos de crear. Para hacer esto, utilice el siguiente código.

Docker ejecutar -ti --rm -p 27017: 27017 mongo: 4.0

Continuando con el paso 5.

Paso # 5: Hacer el front-end

Ahora que todo el trabajo en el backend de la aplicación está hecho, echemos un vistazo al código utilizado para codificar el front end de nuestra aplicación.

package org.acme.rest.json import io.quarkus.mongodb.ReactiveMongoClient import io.quarkus.mongodb.ReactiveMongoCollection import org.bson.Document import javax.enterprise.context.ApplicationScoped import javax.inject.Inject import java.util.List import java.util.concurrent.CompletionStage @ApplicationScoped public class ReactiveFruitService {@Inject ReactiveMongoClient mongoClient public CompletionStage list () {return getCollection (). find (). map (doc -> {Fruit fruit = new Fruit () fruit.setName ( doc.getString ('nombre')) fruit.setDescription (doc.getString ('descripción')) return fruit}). toList (). run ()} public CompletionStage add (Fruit fruit) {Documento documento = nuevo Documento () .append ('nombre', fruit.getName ()) .append ('descripción', fruit.getDescription ()) return getCollection (). insertOne (document)} private ReactiveMongoCollection getCollection () {return mongoClient.getDatabase ('fruit' ) .getCollection ('fruit')}} paquete org.acme.rest.json import javax.inject.Inject import javax.ws.rs. * i mport javax.ws.rs.core.MediaType import java.util.List import java.util.concurrent.CompletionStage @Path ('/ reactive_fruits') @Produces (MediaType.APPLICATION_JSON) @Consumes (MediaType.APPLICATION_JSON) public class ReactiveFruitResource { @Inject ReactiveFruitService fruitService @GET public CompletionStage list () {return fruitService.list ()} @POST public CompletionStage add (Fruit fruit) {fruitService.add (fruit) return list ()}}

En el ejemplo anterior, estamos haciendo uso de un cliente mongoDb reactivo para facilitar la formación de la interfaz.

Continuando con el paso 6.

Paso # 6: simplificar el cliente mongoDb usando el códec BSON

Para hacer esto, utilice el siguiente código.

package org.acme.rest.json.codec import com.mongodb.MongoClient import org.acme.rest.json.Fruit import org.bson. * import org.bson.codecs.Codec import org.bson.codecs.CollectibleCodec import org .bson.codecs.DecoderContext import org.bson.codecs.EncoderContext import java.util.UUID public class FruitCodec implementa CollectibleCodec {Private Codec final documentCodec public FruitCodec () {this.documentCodec = MongoClient.getDefaultCodecRegistry (). get (Document.class )} @Override public void encode (escritor BsonWriter, Fruit fruit, EncoderContext encoderContext) {Document doc = new Document () doc.put ('name', fruit.getName ()) doc.put ('description', fruit.getDescription ()) documentCodec.encode (escritor, doc, encoderContext)} @Override public Class getEncoderClass () {return Fruit.class} @Override public Fruit generateIdIfAbsentFromDocument (documento de Fruit) {if (! documentHasId (documento)) {document.setId ( UUID.randomUUID (). ToString ())} return document} @Override public boolean documentHasId ( Documento de fruta) {return document.getId ()! = Null} @Override public BsonValue getDocumentId (documento de Fruit) {return new BsonString (document.getId ())} @Override public Fruit decode (lector de BsonReader, DecoderContext decoderContext) {Documento de documento = documentCodec.decode (reader, decoderContext) Fruit fruit = new Fruit () if (document.getString ('id')! = null) {fruit.setId (document.getString ('id'))} fruit.setName (document .getString ('nombre')) fruit.setDescription (document.getString ('descripción')) return fruit}}

Ahora haremos uso de un CodecProvider para vincularlo a la clase Fruit ya presente.

package org.acme.rest.json.codec import org.acme.rest.json.Fruit import org.bson.codecs.Codec import org.bson.codecs.configuration.CodecProvider import org.bson.codecs.configuration.CodecRegistry clase pública FruitCodecProvider implementa CodecProvider {@Override public Codec get (Class clazz, CodecRegistry registro) {if (clazz == Fruit.class) {return (Codec) new FruitCodec ()} return null}}

Continuando con el paso 7.

Paso # 7: Código final

El código final de esta aplicación se verá así.

package org.acme.rest.json import com.mongodb.client.MongoClient import com.mongodb.client.MongoCollection import com.mongodb.client.MongoCursor import javax.enterprise.context.ApplicationScoped import javax.inject.Inject import java.util .ArrayList import java.util.List @ApplicationScoped public class CodecFruitService {@Inject MongoClient mongoClient public List list () {List list = new ArrayList () MongoCursor cursor = getCollection (). Find (). Iterator () try {while (cursor .hasNext ()) {list.add (cursor.next ())}} finalmente {cursor.close ()} lista de retorno} public void add (Fruit fruit) {getCollection (). insertOne (fruit)} private MongoCollection getCollection ( ) {return mongoClient.getDatabase ('fruta'). getCollection ('fruta', Fruit.class)}}

Conclusión

Ahora sabe cómo configurar y usar el cliente MongoDB en su sistema. Continúe y pruebe estos códigos en su sistema y háganos saber su experiencia.

Resumen del artículo

Aprenda todo sobre el cliente MongoDB y cómo puede configurarlo en su sistema para varios usos. Siga leyendo para saber más.

Con esto, llegamos al final de la Cliente MongoDB artículo.

cómo crear una aplicación de Salesforce