2011-11-13 24 views
7

Ho alcuni problemi per capire nosql. Sto usando mongodb e java e vorrei creare qualcosa del genere: una tabella (persone) con una colonna per nome (come stringa), età (come numero intero), sposato (booleano). In una sql normale sarebbe facile ... ma come andare avanti con mongodb e java?Tabella SQL a nosql (MongoDB) - esempio semplice

Ok, lo so: una tabella in mongodb è una raccolta e una colonna è un campo BSON. Vorrei iniziare così

 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); 

i primi 3 passaggi sono facili. Ho la mia collezione (tabella), dovrei fare il nome dei campi BSON (colonne), età, sposato. Ma come? Conosco il metodo put(), ma cosa dovrei inserire? E se ho il costrutto, vorrei aggiungere alcune "persone".

Qualche idea? Grazie

+0

morfina o altri Java POJO a Mongo Data Mapper di base vi aiuterà troppo – tgkprog

risposta

3

Dando uno sguardo alla documentazione qui: http://api.mongodb.org/java/2.0/org/bson/BasicBSONObject.html#put(java.lang.String, java.lang.Object)

Mi sembra che mettono accetta chiave e il valore per uno dei vostri campi, per esempio:

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

È possibile inserire tutti gli attributi utilizzando put come si desidera. Ci sono anche metodi da aggiungere da una mappa e simili.

Si prega di tenere presente che non ho mai usato l'API Java MongoDB, quindi baso le mie affermazioni esclusivamente su tale documentazione e una minima conoscenza di MongoDB in generale.

Per la cronaca, quelle "put di" sarebbe equivalente ad una struttura JSON come:

{name: "John", age:35} 

Speranza che aiuta.

5

Si dovrebbe cercare di sbarazzarsi di pensare alle colonne con MongoDB. È schematizzato in modo tale che ogni documento possa avere set di campi diversi anche nella stessa collezione, quindi i campi di pensiero sono colonne potrebbero essere fuorvianti.

Suggerisco di passare attraverso il tutorial Java ufficiale di MongoDB HERE.

Si dovrebbe essere in grado di fare qualcosa di simile:

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