Java MongoDB:ドキュメントを挿入
このチュートリアルでは、Java MongoDB APIを使用して、JSON以下のデータを「document」に挿入する4つの方法を示します。
テストデータ
JSON形式のテストデータ。
{ "database" : "exampleDB", "table" : "hosting", "detail" : { records : 99, index : "vps_index1", active : "true" } } }
1. BasicDBObjectの例
BasicDBObject document = new BasicDBObject(); document.put("database", "exampleDB"); 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", "exampleDB") .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. 地図の例
MapdocumentMap = new HashMap (); documentMap.put("database", "exampleDB"); 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));
4. JSON解析の例
String json = "{'database' : 'exampleDB','table' : 'hosting'," + "'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}"; DBObject dbObject = (DBObject)JSON.parse(json); collection.insert(dbObject);
完全な例
package com.example.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"); DBCollection collection = db.getCollection("dummyColl"); // 1. BasicDBObject example System.out.println("BasicDBObject example..."); BasicDBObject document = new BasicDBObject(); document.put("database", "exampleDB"); 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()); // 2. BasicDBObjectBuilder example System.out.println("BasicDBObjectBuilder example..."); BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start() .add("database", "exampleDB") .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()); // 3. Map example System.out.println("Map example..."); MapdocumentMap = new HashMap (); documentMap.put("database", "exampleDB"); 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)); DBCursor cursorDocMap = collection.find(); while (cursorDocMap.hasNext()) { System.out.println(cursorDocMap.next()); } collection.remove(new BasicDBObject()); // 4. JSON parse example System.out.println("JSON parse example..."); String json = "{'database' : 'exampleDB','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" : "exampleDB" , "table" : "hosting" , "detail" : { "records" : "99" , "index" : "vps_index1" , "active" : "true"}} BasicDBObjectBuilder example... { "_id" : { "$oid" : "4dc9ef6f237f86642d5b34be"} , "database" : "exampleDB" , "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" : "exampleDB"} JSON parse example... { "_id" : { "$oid" : "4dc9ef6f237f86642d5b34c0"} , "database" : "exampleDB" , "table" : "hosting" , "detail" : { "records" : 199 , "index" : "vps_index1" , "active" : "true"}}
What is “id” ?_id
は、IDの目的で、MongoDBによって自動的に追加されます。 MongoDBドキュメントによると、「」、「/」、「$」で始まるすべての要素名は内部使用のために予約されています。