2011-11-13 16 views
7

Tengo algunos problemas para comprender nosql. Estoy usando mongodb y java y me gustaría crear algo así: una tabla (personas) con una columna para el nombre (como cadena), edad (como entero), casado (booleano). En un sql normal, sería fácil ... ¿pero cómo continuar con mongodb y java?Tabla SQL para nosql (MongoDB) - fácil ejemplo

Ok cosas que sé: una tabla en mongodb es una colección y una columna es un campo BSON. Comenzaría así

 Mongo m = new Mongo(); 
     DB db = m.getDB("myDatabase"); 
     DBCollection col = db.getCollection("Persons"); 
     BasicDBObject doc = new BasicDBObject(); 
     doc.put("something?", "something?"); 
     col.insert(doc); 

los primeros 3 pasos son fáciles. Tengo mi colección (tabla), debo hacer que los campos BSON (columnas) nombre, edad, casado. ¿Pero cómo? Conozco el método put(), pero ¿qué debo poner? Y si tengo el constructo, me gustaría agregar algunas "personas".

¿Alguna idea? Gracias

+0

morfina u otro POJO Java para Mongo datos asignador de base ayudará demasiado – tgkprog

Respuesta

3

Echando un vistazo a la documentación aquí: http://api.mongodb.org/java/2.0/org/bson/BasicBSONObject.html#put(java.lang.String, java.lang.Object)

Me parece que puso acepta clave y el valor de uno de sus campos, por ejemplo:

doc.put("name", myPersonInstance.getName()); 
doc.put("age", myPersonInstance.getAge()); 

Puede insertar tantos atributos usando put como desee. También hay métodos para agregar desde un mapa y tal.

Tenga en cuenta que nunca he usado la API de MongoDB Java, por lo que basaré mis declaraciones únicamente en esa documentación y un ligero conocimiento de MongoDB en general.

Para el registro, los "de poner" sería equivalente a una estructura JSON como:

{name: "John", age:35} 

espero que ayude.

5

Debería intentar deshacerse de pensar en columnas con MongoDB. No tiene esquemas, por lo que cada documento puede tener un conjunto diferente de campos, incluso en la misma colección, por lo que los campos de pensamiento son columnas que pueden ser engañosas.

Recomiendo pasar por el tutorial oficial de MongoDB Java HERE.

Usted debe ser capaz de hacer algo como esto:

doc.put("name", "John"); 
doc.put("age", 30); 
doc.put("married", false);