JavaによるMongoDBのガイド

1概要

この記事では、非常にポピュラーなNoSQLオープンソース・データベースhttps://www.mongodb.com/[MonoDB]をスタンドアロンのJavaクライアントに統合する方法について説明します。

MongoDBはC言語で書かれており、マップリデュース、自動シャーディング、レプリケーション、高可用性など、数多くの優れた機能を備えています。

2 MongoDB

MongoDB自体に関するいくつかの重要なポイントから始めましょう。

  • データを保存する

http://www.w3schools.com/js/js json intro.asp[JSON]-のような文書 さまざまな構造を持つことができます ** 動的スキーマを使用します。つまり、レコードなしでレコードを作成できます。

何でも事前定義 ** レコードの構造は新しいフィールドを追加するだけで変更できます

または既存のものを削除する

上記のデータモデルにより、階層関係を表現し、配列やその他のより複雑な構造を簡単に格納することができます。

3専門用語

MongoDBの概念をリレーショナルデータベース構造と比較できれば、MongoDBの概念を理解するのは簡単になります。

Mongoと従来のMySQLシステムとの類似点を見てみましょう。

  • MySQLの Table はMongoの Collection になります

  • Row Document になります

  • Column Field になります

  • Joins linking および embedded ドキュメントとして定義されています

これはもちろんMongoDBのコア概念を見るための単純な方法ですが、それでも便利です。

それでは、この強力なデータベースを理解するために、実装に飛び込みましょう。

4. Mavenの依存関係

MongoDB用のJavaドライバの依存関係を定義することから始める必要があります。

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

ライブラリの新しいバージョンがリリースされたかどうかを確認するには - https://search.maven.org/classic/#search%7Cgav%7C1%7Cg%3A%22org.mongodb%22%20AND%20a%3A%22mongo- java-driver%22[リリースをここで追跡]

5. MongoDB を使用する

それでは、MongoクエリをJavaで実装しましょう。基本的なCRUD操作については、最初から順を追って説明します。

5.1. MongoClient で接続する

まず、MongoDBサーバーに接続しましょう。バージョン> = 2.10.0では、 MongoClient を使用します。

MongoClient mongoClient = new MongoClient("localhost", 27017);

そして古いバージョンでは Mongo クラスを使います。

Mongo mongo = new Mongo("localhost", 27017);

5.2. データベースへの接続

それでは、データベースに接続しましょう。興味深いことに、作成する必要はありません。 Mongoがそのデータベースが存在しないことを発見したら、それを作成します。

DB database = mongoClient.getDB("myMongoDb");

時々、デフォルトで、MongoDBは認証モードで動作します。その場合、データベースに接続している間に認証する必要があります。

我々は以下に提示されるようにそれをすることができます:

MongoClient mongoClient = new MongoClient();
DB database = mongoClient.getDB("myMongoDb");
boolean auth = database.authenticate("username", "pwd".toCharArray());

5.3. 既存のデータベースを表示

既存のデータベースをすべて表示しましょう。コマンドラインを使いたい場合、データベースを表示するための構文はMySQLに似ています。

show databases;

Javaでは、以下のスニペットを使用してデータベースを表示します。

mongoClient.getDatabaseNames().forEach(System.out::println);

出力は次のようになります。

local      0.000GB
myMongoDb  0.000GB

上では、 local がデフォルトのMongoデータベースです。

5.4. Collection を作成

データベース用に Collection (MongoDBに相当するテーブル)を作成することから始めましょう。データベースに接続したら、 Collection を次のように作成できます。

database.createCollection("customers", null);

それでは、現在のデータベースの既存のコレクションをすべて表示しましょう。

database.getCollectionNames().forEach(System.out::println);

出力は次のようになります。

customers

5.5. 保存 - 挿入

save 操作には、保存または更新のセマンティクスがあります。 id が存在する場合は update を実行し、存在しない場合は insert を実行します。

新しい顧客を 保存 した場合

DBCollection collection = database.getCollection("customers");
BasicDBObject document = new BasicDBObject();
document.put("name", "Shubham");
document.put("company", "Baeldung");
collection.insert(document);

エンティティがデータベースに挿入されます。

{
    "__id" : ObjectId("33a52bb7830b8c9b233b4fe6"),
    "name" : "Shubham",
    "company" : "Baeldung"
}

次に、 update semanticsを使った同じ操作 save を見てみましょう。

5.6. 保存 - 更新

それでは、既存の顧客を操作しながら、 update セマンティクスで save を見てみましょう。

{
    "__id" : ObjectId("33a52bb7830b8c9b233b4fe6"),
    "name" : "Shubham",
    "company" : "Baeldung"
}

今、私たちが既存の顧客を 保存 したとき - 更新します

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

BasicDBObject newDocument = new BasicDBObject();
newDocument.put("name", "John");

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

collection.update(query, updateObject);

データベースは次のようになります。

{
    "__id" : ObjectId("33a52bb7830b8c9b233b4fe6"),
    "name" : "John",
    "company" : "Baeldung"
}

ご覧のとおり、この特定の例では、 save update のセマンティクスを使用しています。これは、与えられた __id を持つオブジェクトを使用しているためです。

5.7. Collection から Document を読む

クエリを作成して、 Collection Document を検索しましょう。

BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "John");
DBCursor cursor = collection.find(searchQuery);

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

それは私たちの Collection に今までにある唯一の Document を表示します。

----[    {
      "__id" : ObjectId("33a52bb7830b8c9b233b4fe6"),
      "name" : "John",
      "company" : "Baeldung"
    }]----

5.8. Delete Document__

最後のCRUD操作、削除に進みましょう。

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

collection.remove(searchQuery);

上記のコマンドが実行されると、唯一の Document Collection から削除されます。

6. 結論

この記事は、JavaからMongoDBを使用するための簡単な紹介でした。

これらすべての例とコードスニペットの実装はhttps://github.com/eugenp/tutorials/tree/master/persistence-modules/java-mongodb[over GitHub]で見つけることができます - これはMavenベースのプロジェクトなので、インポートしてそのまま実行するのは簡単なはずです。

前の投稿:Spring 5でレスポンスにヘッダを設定する方法
次の投稿:Kotlinのファイルへの書き込み