Código de Java - Insertando datos en MongoDB desde 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

Insertando datos en MongoDB desde Javagráfica de visualizaciones


Java

Publicado el 14 de Diciembre del 2015 por Julio (12 códigos)
12.188 visualizaciones desde el 14 de Diciembre del 2015
En este código como podéis ver como se añade un documento con el método insertOne y un conjunto de documentos con insertMany.

Método insertOneDataTest(): lo que se hace es introducir un único documento usando el método insertOne y creando un documento de tipo org.bson.Document para la inserción, si el documento no tiene id el driver generará uno.

Método insertManyDataTest(): vamos a introducir ahora un conjunto de datos utilizando una lista: LinkedList dataList = new LinkedList<>(), primero añadimos un par de documentos a la lista como puedes ver en el código, y después hacemos un inserta de la misma en la base de datos utilizando el método getMongodb().getCollection(“restaurants”).insertMany(dataList).

Espero que te haya resultado ú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
estrellaestrellaestrellaestrellaestrella(6)

Publicado el 14 de Diciembre del 2015gráfica de visualizaciones de la versión: 1.0
12.189 visualizaciones desde el 14 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package org.xulescode.mongodb;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
 
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
 
import static java.util.Arrays.asList;
import java.util.LinkedList;
 
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * Class tests for inserting data into MongoDB with <b> insertOne </ b> and <b> insertMany </ b>.
 * Clase de pruebas para la inserción de datos en MongoDB con <b>insertOne</b> y <b>insertMany</b>
 * @author xules
 */
public class JavaMongodbInsertData {
    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());
        setMongodb(getMongoClient().getDatabase("test"));
    }
    /**
     * We use the method <b>insertOne</b> to add a document to the database example.
     * Usamos el método <b>insertOne</b> para añadir un documento a la base de datos de ejemplo.
     */
    public void insertOneDataTest(){
        try {
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);
            // We add a document to the database directly (Añadimos un documento a la base de datos directamente).
            getMongodb().getCollection("restaurants").insertOne(
                    new Document("address", asList(
                            new Document()
                                    .append("street", "Avenida Castrelos 25 Bajo")
                                    .append("zipcode", "36210")
                                    .append("building", "180")
                                    .append("coord", asList(-73.9557413, 40.7720266)),
                            new Document()
                                    .append("street", "Urzáiz 77 Bajo")
                                    .append("zipcode", "36004")
                                    .append("building", "40")
                                    .append("coord", asList(-73.9557413, 40.7720266))))
                            .append("borough", "Vigo")
                            .append("cuisine", "Galician")
                            .append("grades", asList(
                                    new Document()
                                            .append("date", format.parse("2015-10-11T00:00:00Z"))
                                            .append("grade", "A")
                                            .append("score", 12),
                                    new Document()
                                            .append("date", format.parse("2015-12-11T00:00:00Z"))
                                            .append("grade", "B")
                                            .append("score", 18)))
                            .append("name", "Xules"));
        } catch (ParseException ex) {
            Logger.getLogger(JavaMongodbInsertData.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    /**
     * We use the method <b>insertMany</b> to add a set of documents to the database example.
     * Usamos el método <b>insertMany</b> para añadir un conjunto de documentos a la base de datos de ejemplo.
     */
    public void insertManyDataTest(){
        try {
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);
            // We create a List<Document> (Creamos una List<Document>).
            LinkedList<Document> dataList = new LinkedList<>();
            // We add a document to the list (Añadimos un documento a la lista).
            dataList.add(new Document("address", asList(
                            new Document()
                                    .append("street", "Avenida Castrelos 25 Bajo")
                                    .append("zipcode", "36210")
                                    .append("building", "180")
                                    .append("coord", asList(-73.9557413, 40.7720266)),
                            new Document()
                                    .append("street", "Urzáiz 77 Bajo")
                                    .append("zipcode", "36004")
                                    .append("building", "40")
                                    .append("coord", asList(-73.9557413, 40.7720266))))
                            .append("borough", "Vigo")
                            .append("cuisine", "Galician")
                            .append("grades", asList(
                                    new Document()
                                            .append("date", format.parse("2015-10-11T00:00:00Z"))
                                            .append("grade", "A")
                                            .append("score", 12),
                                    new Document()
                                            .append("date", format.parse("2015-12-11T00:00:00Z"))
                                            .append("grade", "B")
                                            .append("score", 18)))
                            .append("name", "Xules"));
            dataList.add(new Document("address", asList(
                            new Document()
                                    .append("street", "Avenida Ruz Perez")
                                    .append("zipcode", "30204")
                                    .append("building", "50")
                                    .append("coord", asList(-73.9557413, 40.7720266))))
                            .append("borough", "Ourense")
                            .append("cuisine", "Galician")
                            .append("grades", asList(
                                    new Document()
                                            .append("date", format.parse("2015-09-01T00:00:00Z"))
                                            .append("grade", "A")
                                            .append("score", 10),
                                    new Document()
                                            .append("date", format.parse("2015-12-01T00:00:00Z"))
                                            .append("grade", "B")
                                            .append("score", 14)))
                            .append("name", "Código Xules"));
            // Now we insert all documents in the database (Ahora introducimos todos los documentos en la base de datos).
            getMongodb().getCollection("restaurants").insertMany(dataList);
        } catch (ParseException ex) {
            Logger.getLogger(JavaMongodbInsertData.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    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;
    }
 
    /**
     * Adding data to the test database MongoDB Java: insertOne and insertMany example.
     * Añadiendo datos a la base test de MongoDB con Java: ejemplos insertOne e insertMany .
     * @param args 
     */
    public static void main(String args[]){
        JavaMongodbInsertData javaMongodbInsertData = new JavaMongodbInsertData();
        javaMongodbInsertData.connectDatabase();
        javaMongodbInsertData.insertOneDataTest();
        javaMongodbInsertData.insertManyDataTest();
    }
}



Comentarios sobre la versión: 1.0 (6)

Imágen de perfil
15 de Diciembre del 2015
estrellaestrellaestrellaestrellaestrella
Buenas Tardes Companero quiero felicitarte por este aporte y tomarte el tiempo de compartirlo con la comunidad, mil gracias
Responder
Imágen de perfil
18 de Diciembre del 2015
estrellaestrellaestrellaestrellaestrella
Muchas gracias Fernando, espero que te haya resultado útil e interesante. Un saludo.
Responder
alvaro
8 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
exclente
Responder
Imágen de perfil
18 de Diciembre del 2015
estrellaestrellaestrellaestrellaestrella
No tengo palabras para tal aporte e increíblemente útil, todos mis parabienes.
Responder
Imágen de perfil
20 de Diciembre del 2015
estrellaestrellaestrellaestrellaestrella
Muchas gracias Manuel, me alegro mucho de que te resulte útil. Un saludo.
Responder
Diego
8 de Diciembre del 2017
estrellaestrellaestrellaestrellaestrella
Hola Julio, muy interesante la estructura de tu codigo y facil de entender, pero veo que tu trabajos con datos fijos ya colocados dentro del codigo, yo estoy trabajando con jsoup para extraer los datos de una pagina web, en el caso de google books para obtener el titulo, el autor y la reseña, pero lo malo esque cuando voy a ingresar las reseñas estos se guardan en otro campo id de mongo y no en el mismo del autor, hay alguna forma de guardar todos los parametros de un solo libro en un solo documento y enviarlo a la base de datos?
Responder

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/s3375