Código de Java - Consultas y filtros con MongoDB en Java

Imágen de perfil
Val: 42
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Consultas y filtros con MongoDB en Javagráfica de visualizaciones


Java

Actualizado el 23 de Diciembre del 2015 por Julio (12 códigos) (Publicado el 20 de Diciembre del 2015)
15.543 visualizaciones desde el 20 de Diciembre del 2015
Utilizaremos el método de find para realizar una consulta para recuperar datos de una colección en MongoDB.

Consulta de todos los documentos de la base de datos será devuelta en una colección, no aplicamos ningún filtro o criterio a la consulta, utilizamos el método de búsqueda
1
find()
que devuelve los resultados de la consulta en un
1
FindIterable
, que será el objeto sobre el que haremos las iteraciones para obtener los documentos:

1
FindIterable<Document> iterable = getMongodb().getCollection("restaurants").find();

Filtrando por un documento con el driver de Java podemos establecer condiciones de igualdad fácilmente con el documento de la siguiente forma new Document( , ).

Si el es en un documento incrustado o una matriz utilizaremos los puntos para acceder al campo, ahora simplemente vamos a establecer nuestra primera condición de igualdad para el : cuisine y con el value que le pasamos en el método listRestaurantsByCuisine(String cuisine):

1
FindIterable<Document> iterable = getMongodb().getCollection("restaurants").find(new Document("cuisine", cuisine));

En este ejemplo el establecimiento de la conexión con MongoDB se hace indicando el host y el puerto:
1
setMongoClient(new MongoClient("localhost", 27017));

En el anterior ejemplo: http://www.lawebdelprogramador.com/codigo/Java/3375-Insertando-datos-en-MongoDB-desde-Java.html, lo haciamos automáticamente, ya que si no se define se cogen los valores por defecto:
1
setMongoClient(new MongoClient());

Espero que te sea útil

Requerimientos

Para este ejemplo que forma parte de mi publicación Empezando con MongoDB en Java en 5 pasos: http://codigoxules.org/empezando-mongodb-java-5-pasos/ necesitamos instalar la base de datos MongoDB en nuestro sistema. En este enlace http://codigoxules.org/empezando-mongodb-java-5-pasos/#instacion-mondodb tienes un ejemplo de como hacerlo en Ubuntu y también de como cargar la base de datos de ejemplo test.

Crear el proyecto en Netbeans u otro IDE y añadir la librería de MongoDB con el driver para Java, en este enlace http://codigoxules.org/empezando-mongodb-java-5-pasos/#configuracion-del-entorno puedes ver como lo hice yo.

Descarga de la base de datos test utilizada: https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/dataset.json

Descarga de la librería de MongoDB: https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.4/, el enlace es a MongoDB 3.0.4 que es la versión que yo utilice en el ejemplo.

1.0

Actualizado el 23 de Diciembre del 2015 (Publicado el 20 de Diciembre del 2015)gráfica de visualizaciones de la versión: 1.0
15.544 visualizaciones desde el 20 de Diciembre del 2015
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package org.xulescode.mongodb;
 
import org.bson.Document;
import com.mongodb.Block;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoDatabase;
 
/**
 * Class tests for MongoDB queries by using collections.
 * Clase de pruebas para las consultas a MongoDB mediante el uso de colecciones.
 * @author xules
 */
public class JavaMongodbList {
    private MongoClient mongoClient;    // Java MongoDB client (Cliente Java MongoDB)
    private MongoDatabase mongodb;      // Database object (Objeto base de datos)
    /**
     * We establish the connection with the database <b>test</b>.
     * Establecemos la conexión con la base de datos <b>test</b>.
     */
    public void connectDatabase(){
        setMongoClient(new MongoClient("localhost", 27017));
        setMongodb(getMongoClient().getDatabase("test"));
    }
    /**
     * Get the list of all the restaurants (each is a document) in the database
     * and shown on screen.
     * Obtenemos la lista de todos los restaurantes (cada uno es un documento)
     * de la base de datos y los mostramos por pantalla.
     */
    public void listRestaurants(){
        // To return all documents in a collection, call the find method without a criteria document.
        // Para devolver todos los documentos en una colección, llamamos al método find sin ningún documento <b>criteria</b>
        FindIterable<Document> iterable = getMongodb().getCollection("restaurants").find();
        // Iterate the results and apply a block to each resulting document.
        // Iteramos los resultados y aplicacimos un bloque para cada documento.
        iterable.forEach(new Block<Document>() {
            @Override
            public void apply(final Document document) {
                System.out.println(document);
            }
        });
    }
    /**
     * Obtenemos la lista de todos los restaurantes de la base de datos filtrando
     * por el tipo de cocina con el paso del parámetro <b>cuisine</b> y los mostramos por pantalla.
     * @param cuisine <code>String</code> data value to filter (valor para filtrar)
     */
    public void listRestaurantsByCuisine(String cuisine){
        // We return documents with the find method by setting a <b>criteria</ b> element equal to the cuisine.
        // Devolvemos los documentos con el método find estableciendo un <b>criteria</b> igual para el elemento cuisine.
        FindIterable<Document> iterable = getMongodb().getCollection("restaurants").find(new Document("cuisine", cuisine));
        // Iterate the results and apply a block to each resulting document.
        // Iteramos los resultados y aplicacimos un bloque para cada documento.
        iterable.forEach(new Block<Document>() {
            @Override
            public void apply(final Document document) {
                System.out.println(document);
 
            }
        });
    }
 
 
    public MongoClient getMongoClient() {
        return mongoClient;
    }
 
    public void setMongoClient(MongoClient mongoClient) {
        this.mongoClient = mongoClient;
    }
 
    public MongoDatabase getMongodb() {
        return mongodb;
    }
 
    public void setMongodb(MongoDatabase mongodb) {
        this.mongodb = mongodb;
    }
    /**
     * We execute methods to display restaurants.
     * Ejecutamos los métodos para mostrar los restaurantes.
     * @param args 
     */
    public static void main(String args[]){
        JavaMongodbList javaMongodbList = new JavaMongodbList();
        javaMongodbList.connectDatabase();
        // List all the restaurants (Mostramos todos los restaurantes).
        javaMongodbList.listRestaurants();
        // List the restaurants with "Galician" cuisine  (Mostramos los restaurantes con cuisine igual a "Galician").
        javaMongodbList.listRestaurantsByCuisine("Galician");
    }
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3385