Java + MongoDB Hello Worldの例
単純なJava + MongoDBのhello worldの例–接続、データベース、コレクションとドキュメントの作成、保存(更新)、削除、ドキュメント(データ)の取得と表示の方法。
使用されるツールとテクノロジー:
-
MongoDB 2.2.3
-
MongoDB-Java-Driver 2.10.1
-
JDK 1.6
-
Maven 3.0.3
-
Eclipse 4.2
P.S Maven and Eclipse are both optional, just my personal favorite development tool.
1. Javaプロジェクトを作成する
Mavenでsimple Java projectを作成します。
mvn archetype:generate -DgroupId=com.example.core -DartifactId=mongodb -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
2. Mongo Javaドライバーを入手する
githubからmongo-javaドライバーをダウンロードします。 Mavenユーザーの場合、pom.xml
でmongo-javaドライバーを宣言します。
pom.xml
org.mongodb mongo-java-driver 2.10.1 org.apache.maven.plugins maven-compiler-plugin 2.3.1 1.6 org.apache.maven.plugins maven-eclipse-plugin true true
3. Mongo Connection
MongoDBサーバーに接続します。 MongoDBバージョン> = 2.10.0の場合、MongoClient
を使用します。
// Old version, uses Mongo Mongo mongo = new Mongo("localhost", 27017); // Since 2.10.0, uses MongoClient MongoClient mongo = new MongoClient( "localhost" , 27017 );
MongoDBがセキュアモードの場合、認証が必要です。
MongoClient mongoClient = new MongoClient(); DB db = mongoClient.getDB("database name"); boolean auth = db.authenticate("username", "password".toCharArray());
4. Mongoデータベース
データベースを取得します。 データベースが存在しない場合は、MongoDBが作成します。
DB db = mongo.getDB("database name");
すべてのデータベースを表示します。
Listdbs = mongo.getDatabaseNames(); for(String db : dbs){ System.out.println(db); }
5. モンゴコレクション
コレクション/テーブルを取得します。
DB db = mongo.getDB("testdb"); DBCollection table = db.getCollection("user");
選択したデータベースからすべてのコレクションを表示します。
DB db = mongo.getDB("testdb"); Settables = db.getCollectionNames(); for(String coll : tables){ System.out.println(coll); }
Note
RDBMSでは、コレクションはテーブルと同じです。
6. 例を保存
ドキュメント(データ)を「user」という名前のコレクション(テーブル)に保存します。
DBCollection table = db.getCollection("user"); BasicDBObject document = new BasicDBObject(); document.put("name", "example"); document.put("age", 30); document.put("createdDate", new Date()); table.insert(document);
このJava MongoDB insert exampleを参照してください。
7. 更新例
「name = example」のドキュメントを更新します。
DBCollection table = db.getCollection("user"); BasicDBObject query = new BasicDBObject(); query.put("name", "example"); BasicDBObject newDocument = new BasicDBObject(); newDocument.put("name", "example-updated"); BasicDBObject updateObj = new BasicDBObject(); updateObj.put("$set", newDocument); table.update(query, updateObj);
このJava MongoDB update exampleを参照してください。
8. 例を見つける
「name = example」のドキュメントを見つけて、DBCursorで表示します
DBCollection table = db.getCollection("user"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.put("name", "example"); DBCursor cursor = table.find(searchQuery); while (cursor.hasNext()) { System.out.println(cursor.next()); }
このJava MongoDB search query exampleを参照してください。
9. 例を削除
「name = example」のドキュメントを見つけて、削除します。
DBCollection table = db.getCollection("user"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.put("name", "example"); table.remove(searchQuery);
このJava MongoDB delete exampleを参照してください。
10. こんにちは世界
完全なJava + MongoDBの例を確認し、説明のないコメントを参照してください。
App.java
package com.example.core; import java.net.UnknownHostException; import java.util.Date; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.MongoClient; import com.mongodb.MongoException; /** * Java + MongoDB Hello world Example * */ public class App { public static void main(String[] args) { try { /**** Connect to MongoDB ****/ // Since 2.10.0, uses MongoClient MongoClient mongo = new MongoClient("localhost", 27017); /**** Get database ****/ // if database doesn't exists, MongoDB will create it for you DB db = mongo.getDB("testdb"); /**** Get collection / table from 'testdb' ****/ // if collection doesn't exists, MongoDB will create it for you DBCollection table = db.getCollection("user"); /**** Insert ****/ // create a document to store key and value BasicDBObject document = new BasicDBObject(); document.put("name", "example"); document.put("age", 30); document.put("createdDate", new Date()); table.insert(document); /**** Find and display ****/ BasicDBObject searchQuery = new BasicDBObject(); searchQuery.put("name", "example"); DBCursor cursor = table.find(searchQuery); while (cursor.hasNext()) { System.out.println(cursor.next()); } /**** Update ****/ // search document where name="example" and update it with new values BasicDBObject query = new BasicDBObject(); query.put("name", "example"); BasicDBObject newDocument = new BasicDBObject(); newDocument.put("name", "example-updated"); BasicDBObject updateObj = new BasicDBObject(); updateObj.put("$set", newDocument); table.update(query, updateObj); /**** Find and display ****/ BasicDBObject searchQuery2 = new BasicDBObject().append("name", "example-updated"); DBCursor cursor2 = table.find(searchQuery2); while (cursor2.hasNext()) { System.out.println(cursor2.next()); } /**** Done ****/ System.out.println("Done"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } }
出力…
{ "_id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "name" : "example" , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"}} { "_id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"} , "name" : "example-updated"} Done
mongo
コンソールを使用して、作成されたデータベース「testdb」、コレクション「user」、およびドキュメントを確認します。
$ mongo MongoDB shell version: 2.2.3 connecting to: test > show dbs testdb 0.203125GB > use testdb switched to db testdb > show collections system.indexes user > db.user.find() { "_id" : ObjectId("51398e6e30044a944cc23e2e"), "age" : 30, "createdDate" : ISODate("2013-03-08T07:08:30.168Z"), "name" : "example-updated" }
ソースコードをダウンロード
ダウンロード–Java-mongodb-hello-world-example.zip(13KB)