2011-11-13 6 views
7

J'ai quelques problèmes pour comprendre nosql. Im en utilisant mongodb et java et voudrais créer quelque chose comme ça: une table (personnes) avec une colonne pour le nom (comme chaîne), l'âge (comme entier), marié (booléen). Dans un sql normal ce serait facile ... mais comment continuer avec mongodb et java?Table SQL à nosql (MongoDB) - exemple simple

Ok, je sais: une table dans mongodb est une collection et une colonne est un champ BSON. Je commencerais comme ceci

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

les 3 premières étapes sont faciles. J'ai ma collection (table), je devrais faire le nom des champs BSON (colonnes), âge, marié. Mais comment? Je connais la méthode put(), mais que dois-je mettre? Et si j'ai la construction, j'aimerais ajouter quelques "personnes".

Des idées? Merci

+0

morphia ou autre Java POJO à Mongo Base de données mappeur aidera aussi – tgkprog

Répondre

3

Jeter un oeil à la documentation ici: http://api.mongodb.org/java/2.0/org/bson/BasicBSONObject.html#put(java.lang.String, java.lang.Object)

Il me semble que mettre accepte clé et la valeur pour l'un de vos champs, par exemple:

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

Vous pouvez insérer autant d'attributs que vous le souhaitez. Il y a aussi des méthodes à ajouter à partir d'une carte et autres. S'il vous plaît gardez à l'esprit que je n'ai jamais utilisé l'API Java MongoDB, donc je base mes déclarations uniquement sur cette documentation et une certaine connaissance de MongoDB en général.

Pour mémoire, les "mettre de" équivaudrait à une structure JSON comme:

{name: "John", age:35} 

Hope it helps.

5

Vous devriez essayer de vous débarrasser de penser à des colonnes avec MongoDB. Il est schemaless donc chaque document peut avoir un ensemble de champs différents, même dans la même collection de sorte que les champs de réflexion sont des colonnes peuvent être trompeuses.

Je recommande de passer par le tutoriel Java officiel de MongoDB HERE.

Vous devriez être en mesure de faire quelque chose comme ceci:

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