2011-11-13 56 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);