MongoDB - Java: 基礎ガイド
こんにちは、未来のMongoDBの魔術師!JavaでのMongoDBの世界に踏み込むこのエキサイティングな旅において、あなたのガイドを務められることを嬉しく思います。コンピュータサイエンスを多年間教えてきた者として言えることは、この組み合わせはピーナッツバターとジャムのように - とても美味しいものです!では、腕をまくって一緒に潜りましょうか?
インストール
MongoDBの魔法を駆使する前に、まずは私たちのキッチン(いや、開発環境)を準備しましょう。心配しないでください、IKEAの家具を組み立てるよりも簡単です!
- まず、公式ウェブサイトからMongoDBをダウンロードしてインストールします。
- 次に、プロジェクトにMongoDB Javaドライバーを追加します。Mavenを使用している場合は、pom.xmlに以下を追加します:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.3.0</version>
</dependency>
Mavenを使用していない場合は、焦らずに!JARファイルをダウンロードして、クラスパスに手動で追加することができます。自動変速と手動変速の違いのように - どちらも目的地に連れて行ってくれます!
データベースに接続
すべての準備が整ったので、データベースに接続しましょう。電話をかけるのと同じように、データベースに「電話」をかける感じです!
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
public class MongoDBConnection {
public static void main(String[] args) {
// MongoDBクライアントを作成
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
// データベースに接続
MongoDatabase database = mongoClient.getDatabase("myDatabase");
System.out.println("データベースに接続しました!");
}
}
このコードでは、MongoClient
を作成し、それを使って「myDatabase」という名前のデータベースに接続しています。データベースが存在しない場合、MongoDBは自動で作成してくれます。優しいですね?
コレクションを作成
MongoDBのコレクションは、リレーショナルデータベースのテーブルのように見えますが、もっと cooler です。スキーマレスで、異なる種類のドキュメントを保持できます。みんなが招待されるパーティーのようなものです!
import com.mongodb.client.MongoCollection;
import org.bson.Document;
// ... (データベースに接続する前のコード)
MongoCollection<Document> collection = database.getCollection("myCollection");
if (collection == null) {
database.createCollection("myCollection");
System.out.println("コレクションが正常に作成されました!");
} else {
System.out.println("コレクションは既に存在しています!");
}
このコードは、「myCollection」という名前のコレクションが存在するかどうかをチェックします。存在しない場合、作成します。冷蔵庫にミルクがあるかどうかを確認し、ない場合は買うのと同じです!
コレクションを選択
コレクションが整ったら、どのように選択するかを知る必要があります。おもちゃの箱からどの玩具を選ぶかを選ぶのと同じです!
MongoCollection<Document> collection = database.getCollection("myCollection");
System.out.println("選択されたコレクション: " + collection.getNamespace().getCollectionName());
このコードは、「myCollection」コレクションを選択し、その名前を表示します。シンプルですね?
ドキュメントを追加
さあ、コレクションにデータを追加しましょう。MongoDBでは、データはドキュメントとして保存され、JSONオブジェクトに似ています。
Document document = new Document("name", "John Doe")
.append("age", 30)
.append("city", "New York");
collection.insertOne(document);
System.out.println("ドキュメントが正常に追加されました!");
このコードは、名前、年齢、都市を含むドキュメントを作成し、コレクションに追加します。フォームに記入して提出するようなものです!
すべてのドキュメントを取得
データが何の役にも立たないなら、取得することはできません。コレクションからすべてのドキュメントを取得しましょう。
import com.mongodb.client.FindIterable;
import static com.mongodb.client.model.Filters.*;
FindIterable<Document> documents = collection.find();
for (Document doc : documents) {
System.out.println(doc.toJson());
}
このコードは、すべてのドキュメントを取得し、JSONとして表示します。お菓子のjarを全部.Requestするようなものです!
ドキュメントを更新
時々、データを更新する必要があります。もしかしたらJohnが新しい都市に引っ越したかもしれません?
collection.updateOne(eq("name", "John Doe"), new Document("$set", new Document("city", "San Francisco")));
System.out.println("ドキュメントが正常に更新されました!");
このコードは、John Doeの都市をサンフランシスコに更新します。引っ越しするときに住所を更新するのと同じです!
ドキュメントを削除
そして、時々データを削除する必要があります。Johnがデータベースに居たくなくなったとしましょう。
collection.deleteOne(eq("name", "John Doe"));
System.out.println("ドキュメントが正常に削除されました!");
このコードは、John Doeのドキュメントを削除します。宿題の間違いを消すのと同じです!
コレクションをドロップ
コレクション全体を削除したい場合は、ドロップします。
collection.drop();
System.out.println("コレクションが正常にドロップされました!");
このコードは、すべてのコレクションをドロップします。全部のおもちゃを箱から出すのと同じですが、注意が必要です!
すべてのコレクションをリスト
最後に、データベース内のコレクションをすべてリストアップする方法を見てみましょう。
for (String collectionName : database.listCollectionNames()) {
System.out.println(collectionName);
}
このコードは、データベース内のコレクション名をすべてリストアップします。全部のゲームを inventry するのと同じです!
以下は、カバーしたすべてのメソッドの summarize です:
メソッド | 説明 |
---|---|
MongoClients.create() |
MongoDBクライアントを作成 |
mongoClient.getDatabase() |
データベースに接続 |
database.getCollection() |
コレクションを取得または作成 |
collection.insertOne() |
ドキュメントを追加 |
collection.find() |
ドキュメントを取得 |
collection.updateOne() |
ドキュメントを更新 |
collection.deleteOne() |
ドキュメントを削除 |
collection.drop() |
コレクションをドロップ |
database.listCollectionNames() |
すべてのコレクション名をリスト |
そして、ここまでで、あなたはJavaでのMongoDBの素晴らしい世界の初歩を踏み出しました。実践が完璧を生むことを忘れずに、さまざまな組み合わせを試してみてください。次の大数据ベース駆動型アプリケーションを作成するかもしれない谁知道?ハッピーコーディング!
Credits: Image by storyset