本教程介绍4种通过 MongoDB 的 Java API 将下述 JSON 数据插入文档的方法。
1. JSON数据
{"database" : "mkyongDB","table" : "hosting","detail" :{records : 99,index : "vps_index1",active : "true"}}}
2. DBCollection.insert()
四种插入数据的方法:
(1)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);
(2)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());
(3)Map
Map<String, Object> documentMap = new HashMap<String, Object>();documentMap.put("database", "mkyongDB");documentMap.put("table", "hosting");Map<String, Object> documentMapDetail = new HashMap<String, Object>();documentMapDetail.put("records", "99");documentMapDetail.put("index", "vps_index1");documentMapDetail.put("active", "true");documentMap.put("detail", documentMapDetail);collection.insert(new BasicDBObject(documentMap));
(4)JSON parse
String json = "{'database' : 'mkyongDB','table' : 'hosting'," +"'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}";DBObject dbObject = (DBObject)JSON.parse(json);collection.insert(dbObject);
3. 完整样例
插入上述JSON数据并打印输出:
package com.mkyong.core;import java.net.UnknownHostException;import java.util.HashMap;import java.util.Map;import com.mongodb.BasicDBObject;import com.mongodb.BasicDBObjectBuilder;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.Mongo;import com.mongodb.MongoException;import com.mongodb.util.JSON;/*** Java MongoDB : Insert a Document**/public class InsertDocumentApp {public static void main(String[] args) {try {Mongo mongo = new Mongo("localhost", 27017);DB db = mongo.getDB("yourdb");// get a single collectionDBCollection collection = db.getCollection("dummyColl");// BasicDBObject exampleSystem.out.println("BasicDBObject example...");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);DBCursor cursorDoc = collection.find();while (cursorDoc.hasNext()) {System.out.println(cursorDoc.next());}collection.remove(new BasicDBObject());// BasicDBObjectBuilder exampleSystem.out.println("BasicDBObjectBuilder example...");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());DBCursor cursorDocBuilder = collection.find();while (cursorDocBuilder.hasNext()) {System.out.println(cursorDocBuilder.next());}collection.remove(new BasicDBObject());// Map exampleSystem.out.println("Map example...");Map<String, Object> documentMap = new HashMap<String, Object>();documentMap.put("database", "mkyongDB");documentMap.put("table", "hosting");Map<String, Object> documentMapDetail = new HashMap<String, Object>();documentMapDetail.put("records", "99");documentMapDetail.put("index", "vps_index1");documentMapDetail.put("active", "true");documentMap.put("detail", documentMapDetail);collection.insert(new BasicDBObject(documentMap));DBCursor cursorDocMap = collection.find();while (cursorDocMap.hasNext()) {System.out.println(cursorDocMap.next());}collection.remove(new BasicDBObject());// JSON parse exampleSystem.out.println("JSON parse example...");String json = "{'database' : 'mkyongDB','table' : 'hosting'," +"'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}";DBObject dbObject = (DBObject)JSON.parse(json);collection.insert(dbObject);DBCursor cursorDocJSON = collection.find();while (cursorDocJSON.hasNext()) {System.out.println(cursorDocJSON.next());}collection.remove(new BasicDBObject());} catch (UnknownHostException e) {e.printStackTrace();} catch (MongoException e) {e.printStackTrace();}}}
输出:
BasicDBObject example...{ "_id" : { "$oid" : "4dc9ef6f237f86642d5b34bd"} , "database" : "mkyongDB" ,"table" : "hosting" , "detail" : { "records" : "99" , "index" : "vps_index1" , "active" : "true"}}BasicDBObjectBuilder example...{ "_id" : { "$oid" : "4dc9ef6f237f86642d5b34be"} , "database" : "mkyongDB" ,"table" : "hosting" , "detail" : { "records" : "99" , "index" : "vps_index1" , "active" : "true"}}Map example...{ "_id" : { "$oid" : "4dc9ef6f237f86642d5b34bf"} , "detail" : { "index" : "vps_index1" ,"active" : "true" , "records" : "99"} , "table" : "hosting" , "database" : "mkyongDB"}JSON parse example...{ "_id" : { "$oid" : "4dc9ef6f237f86642d5b34c0"} , "database" : "mkyongDB" ,"table" : "hosting" , "detail" : { "records" : 199 , "index" : "vps_index1" , "active" : "true"}}