Java MongoDB hello worldの例

Java + MongoDB Hello Worldの例

Java mongodb hello world

単純なJava + MongoDBのhello worldの例–接続、データベース、コレクションとドキュメントの作成、保存(更新)、削除、ドキュメント(データ)の取得と表示の方法。

使用されるツールとテクノロジー:

  1. MongoDB 2.2.3

  2. MongoDB-Java-Driver 2.10.1

  3. JDK 1.6

  4. Maven 3.0.3

  5. 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
                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");

すべてのデータベースを表示します。

    List dbs = 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");
    Set tables = 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)