我们希望用不同的方式,通过JAVA代码向Mongodb插入以上格式的JSON数据
第一种方法,是使用BasicDBObject,方法如下代码所示:
BasicDBObject document
=
new
BasicDBObject();
document.put( " database " , " mkyongDB " );
document.put( " table " , " hosting " );
BasicDBObject documentDetail = new BasicDBObject();
documentDetail.put( " records " , " 99 " );
documentDetail.put( " index " , " vps_index1 " );
documentDetail.put( " active " , " true " );
document.put( " detail " , documentDetail);
collection.insert(document);
document.put( " database " , " mkyongDB " );
document.put( " table " , " hosting " );
BasicDBObject documentDetail = new BasicDBObject();
documentDetail.put( " records " , " 99 " );
documentDetail.put( " index " , " vps_index1 " );
documentDetail.put( " active " , " true " );
document.put( " detail " , documentDetail);
collection.insert(document);
第二种方法是使用BasicDBObjectBuilder对象,如下代码所示:
BasicDBObjectBuilder documentBuilder
=
BasicDBObjectBuilder.start()
.add( " database " , " mkyongDB " )
.add( " table " , " hosting " );
BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start()
.add( " records " , " 99 " )
.add( " index " , " vps_index1 " )
.add( " active " , " true " );
documentBuilder.add( " detail " , documentBuilderDetail.get());
collection.insert(documentBuilder.get());
.add( " database " , " mkyongDB " )
.add( " table " , " hosting " );
BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start()
.add( " records " , " 99 " )
.add( " index " , " vps_index1 " )
.add( " active " , " true " );
documentBuilder.add( " detail " , documentBuilderDetail.get());
collection.insert(documentBuilder.get());
第三种方法是使用Map对象,代码如下:
Map documentMap
=
new
HashMap();
documentMap.put( " database " , " mkyongDB " );
documentMap.put( " table " , " hosting " );
Map documentMapDetail = new HashMap();
documentMapDetail.put( " records " , " 99 " );
documentMapDetail.put( " index " , " vps_index1 " );
documentMapDetail.put( " active " , " true " );
documentMap.put( " detail " , documentMapDetail);
collection.insert( new BasicDBObject(documentMap));
documentMap.put( " database " , " mkyongDB " );
documentMap.put( " table " , " hosting " );
Map documentMapDetail = new HashMap();
documentMapDetail.put( " records " , " 99 " );
documentMapDetail.put( " index " , " vps_index1 " );
documentMapDetail.put( " active " , " true " );
documentMap.put( " detail " , documentMapDetail);
collection.insert( new BasicDBObject(documentMap));
第四种方法,也就是最简单的,即直接插入JSON格式数据
String json
=
"
{'database' : 'mkyongDB','table' : 'hosting',
"
+
" 'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}} " ;
DBObject dbObject = (DBObject)JSON.parse(json);
collection.insert(dbObject);
" 'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}} " ;
DBObject dbObject = (DBObject)JSON.parse(json);
collection.insert(dbObject);
这里使用了JSON的parse方法,将解析后的JSON字符串转变为DBObject对象后再直接插入到collection中去。
mongodb的java driver执行“原生查询”语句
DBObject o=(DBObject) JSON.parse("{ groups.groupName : 'group1' }");
DBObject o2=(DBObject) JSON.parse("{ groups.size : 0 }");
//这个格外的部分是 filed selection,为0你看结果里面就没有这个filed,如果为1则是只有这个filed被返回
DB db = new Mongo().getDB("test");DBCollection coll = db.getCollection("UserInfo");
DBCursor cur = coll.find(o,o2).slaveOk(); //slaveOk是说在 replica模式下,访问secondary(扶手)需要slaveOk
while(cur.hasNext()){
System.out.println(cur.next());
}
==================result======================================================
{ "_id" : { "$oid" : "4e82e5fe6c7de47b217684a8"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}{ "_id" : { "$oid" : "4e82e6566c7d169e3e4873d7"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6c26c7d1f4ace2dfe29"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6e96c7d1fb39cf66eb4"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6fb6c7da5fa87fb8b13"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e74c6c7d653edb297c32"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82ea436c7da72043cf2e4c"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}