2011-11-13 49 views
7

我有一些問題,以瞭解nosql。即時通訊使用MongoDB和Java,並希望創建類似的東西:一個表(人)與名稱(作爲字符串),年齡(整數),結婚(布爾)列。在一個普通的SQL中,它會很容易...但是如何繼續使用MongoDB和Java?SQL表到nosql(MongoDB) - 簡單的例子

好東西我知道:mongodb中的表是一個集合,而列是BSON字段。我會開始這樣

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

前3個步驟很容易。我有我的收藏(表),我應該讓BSON字段(列)名稱,年齡,結婚。但是如何?我知道put()方法,但我應該放入什麼?如果我有這個結構,我想補充一些「人員」。

任何想法?謝謝

+0

嗎啡或其他Java POJO來蒙戈數據庫映射器將幫助太 – tgkprog

回答

3

考慮看看文檔在這裏: http://api.mongodb.org/java/2.0/org/bson/BasicBSONObject.html#put(java.lang.String,java.lang.Object中)

在我看來,那放接受你的領域之一鍵和值,例如:

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

您可以根據需要使用put來插入任意數量的屬性。還有從地圖等添加的方法。

請記住,我從來沒有使用過MongoDB Java API,因此我僅僅根據該文檔和一些MongoDB的一般知識進行了基礎說明。

爲了記錄在案,那些「放的」就相當於一個JSON結構,如:

{name: "John", age:35} 

希望它能幫助。

5

你應該儘量擺脫對MongoDB列的思考。它是無模式的,因此即使在同一個集合中,每個文檔都可能有不同的字段集,所以思維字段爲列可能會產生誤導。

我推薦通過官方的MongoDB Java教程HERE

你應該能夠做這樣的事情:

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