Java MongoDB hello worldの例

Java mongodb hello world、width = 269、height = 108

単純な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とEclipseはどちらもオプションですが、個人的に好きな開発ツールです。

1. Javaプロジェクトを作成する

Mavenを使ってリンク://maven/how-to-create-a-java-project-with-maven/[単純なJavaプロジェクト]を作成します。

mvn archetype:generate -DgroupId=com.mkyong.core -DartifactId=mongodb
  -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2. Mongo Java Driverを入手する

github からmongo-javaドライバをダウンロードしてください。 Mavenユーザの場合、 `pom.xml`にmongo-javaドライバを宣言します。

pom.xml

<project ...>
  <dependencies>

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>2.10.1</version>
    </dependency>

  </dependencies>

  <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </configuration>
        </plugin>

    </plugins>
  </build>

</project>

3. Mongo接続

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<String> 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<String> tables = db.getCollectionNames();

    for(String coll : tables){
        System.out.println(coll);
    }

6.サンプルの保存

ドキュメント(データ)を "user"という名前のコレクション(テーブル)に保存します。

    DBCollection table = db.getCollection("user");
    BasicDBObject document = new BasicDBObject();
    document.put("name", "mkyong");
    document.put("age", 30);
    document.put("createdDate", new Date());
    table.insert(document);

このリンク://mongodb/java-mongodb-insert-a-document/[Java MongoDBの挿入例]を参照してください。

7.更新例

"name = mkyong"のドキュメントを更新します。

    DBCollection table = db.getCollection("user");

    BasicDBObject query = new BasicDBObject();
    query.put("name", "mkyong");

    BasicDBObject newDocument = new BasicDBObject();
    newDocument.put("name", "mkyong-updated");

    BasicDBObject updateObj = new BasicDBObject();
    updateObj.put("$set", newDocument);

    table.update(query, updateObj);

このリンク://mongodb/java-mongodb-update-document/[Java MongoDBの更新例]を参照してください。

8.例を見つける

"name = mkyong"の文書を検索し、DBCursorで表示します

    DBCollection table = db.getCollection("user");

    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("name", "mkyong");

    DBCursor cursor = table.find(searchQuery);

    while (cursor.hasNext()) {
        System.out.println(cursor.next());
    }

このリンク://mongodb/java-mongodb-query-document/[Java MongoDB検索クエリの例]を参照してください。

9.削除例

"name = mkyong"の文書を見つけて削除してください。

    DBCollection table = db.getCollection("user");

    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("name", "mkyong");

    table.remove(searchQuery);

このリンク://mongodb/java-mongodb-delete-document/[Java MongoDB delete example]を参照してください。

10. Hello World

完全なJava MongoDBの例を見てみましょう。コメントは自明です。

App.java

package com.mkyong.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", "mkyong");
    document.put("age", 30);
    document.put("createdDate", new Date());
    table.insert(document);

   /** ** ** **  Find and display ** ** ** ** /    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("name", "mkyong");

    DBCursor cursor = table.find(searchQuery);

    while (cursor.hasNext()) {
        System.out.println(cursor.next());
    }

   /** ** ** **  Update ** ** ** ** /   //search document where name="mkyong" and update it with new values
    BasicDBObject query = new BasicDBObject();
    query.put("name", "mkyong");

    BasicDBObject newDocument = new BasicDBObject();
    newDocument.put("name", "mkyong-updated");

    BasicDBObject updateObj = new BasicDBObject();
    updateObj.put("$set", newDocument);

    table.update(query, updateObj);

   /** ** ** **  Find and display ** ** ** ** /    BasicDBObject searchQuery2
        = new BasicDBObject().append("name", "mkyong-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" : "mkyong" , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"}}
{ "__id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"} , "name" : "mkyong-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" : "mkyong-updated" }

ソースコードをダウンロードする

ダウンロードする - Java-mongodb-hello-world-example.zip (13KB)