検索
ホームページJava&#&チュートリアルMongoDB を使用して Spring Boot でドキュメント ストレージとクエリを実装する

Spring Boot は最新のエンタープライズ レベルの Web アプリケーション用の迅速な開発フレームワークであり、MongoDB は非常に人気のあるドキュメント データベースです。この記事では、Spring Boot と MongoDB を使用してドキュメント ストレージとクエリを実装する方法を紹介します。

ステップ 1: MongoDB をインストールする

MongoDB の使用を開始する前に、まず MongoDB データベースをインストールする必要があります。公式 Web サイトでは、ダウンロードできるさまざまなオペレーティング システムのバージョンが提供されています。ダウンロードが完了したら、インストール ウィザードの指示に従ってインストールします。

ステップ 2: Spring Boot プロジェクトを作成する

次に、Spring Boot プロジェクトを作成する必要があります。 Spring Boot フレームワークを使用する場合は、Spring Boot フレームワークをインストールしており、ある程度理解していることを前提としています。ここでは Spring Initializr を使用して新しいプロジェクトを作成します。

プロジェクトを作成するときは、Spring Web Starter と Spring Data MongoDB Starter の依存関係を追加する必要があります。これらはそれぞれ、Web アプリケーションと MongoDB データ ストレージの共通の依存関係です。

ステップ 3: MongoDB の構成

プロジェクトの作成後、MongoDB を構成する必要があります。 application.properties ファイルに、次のプロパティを追加する必要があります。

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=test

上記のコードは、MongoDB サーバーのホスト名とポート、およびデータベースの名前を定義します。

ステップ 4: データ モデルを作成する

Spring Boot では、MongoTemplate オブジェクトを使用してデータベース操作を実行できます。何かを行う前に、単純なデータ モデルを定義する必要があります。

@Document(collection = "users")
public class User {

    @Id
    private String id;
    private String name;
    private int age;
    
    // getters and setters
    
}

ここでは、User という名前のデータ モデルを定義します。 @Document アノテーションは、このデータ モデルが MongoDB 内のどのコレクションに格納されるかを定義します。 @Id アノテーションは、MongoDB でこの属性がドキュメントの主キーとして使用されることを示します。

ステップ 5: リポジトリの作成

次に、基本的な CRUD 操作を処理するためのリポジトリを作成する必要があります。 Spring Boot では、Spring Data MongoDB を使用してこれらの操作を処理できます。リポジトリを作成するには、インターフェイスを作成して MongoRepository を拡張する必要があります。

@Repository
public interface UserRepository extends MongoRepository<User, String> {

}

ここでは、UserRepository というインターフェイスを定義しました。 MongoRepository を拡張することで、MongoDB の CRUD 操作を継承できます。

ステップ 6: MongoTemplate を使用して高度なクエリを実行する

次に、MongoTemplate オブジェクトを使用して高度なクエリ操作を実行する方法を紹介します。 MongoTemplate は、ドキュメントの検索に役立つ多くの便利なメソッドを提供します。

たとえば、Alice という名前のすべてのユーザーを検索するには、次のコードを使用します。

Query query = new Query();
query.addCriteria(Criteria.where("name").is("Alice"));
List<User> users = mongoTemplate.find(query, User.class);

ここでは、クエリ オブジェクトを作成し、Criteria.where() メソッドを使用してクエリを指定します。分野。最後に、find() メソッドを使用してクエリを実行します。

MongoTemplate オブジェクトを使用して、グループ化、集計、並べ替え、制限などのさまざまな種類のクエリ操作を実行できます。

ステップ 7: MongoDB GridFS を使用してファイルを保存および取得する

MongoDB は、より大きなファイルを保存および取得するために使用できる GridFS と呼ばれる機能も提供します。 GridFS は、ファイルをチャンクに分割して MongoDB に保存し、これらのチャンクを簡単に取得して結合するための一連のメソッドを提供します。

Spring Boot では、GridFS 操作に Spring Data MongoDB を使用できます。 GridFS を使用するには、GridFsTemplate オブジェクトを作成する必要があります。以下はサンプル コード スニペットです:

@Autowired
private GridFsTemplate gridFsTemplate;

public String saveFile(InputStream inputStream, String fileName) {
    DBObject metaData = new BasicDBObject();
    metaData.put("fileName", fileName);
    ObjectId objectId = gridFsTemplate.store(inputStream, fileName, metaData);
    return objectId.toString();
}

public GridFSDBFile getFile(String fileId) {
    return gridFsTemplate.findOne(new Query(Criteria.where("_id").is(fileId)));
}

ここでは、最初に GridFsTemplate オブジェクトを挿入します。 saveFile() メソッドは MongoDB にファイルを保存する方法を示し、getFile() メソッドはファイルを取得する方法を示します。

概要

この記事では、Spring Boot と MongoDB を使用してドキュメント ストレージとクエリを実装する方法を紹介しました。リポジトリを作成し、MongoTemplate オブジェクトを使用すると、さまざまな種類のデータベース操作を簡単に実行できます。 GridFS を使用して大きなファイルを保存および取得する方法についても説明しました。これらのツールを使用すると、複雑なアプリケーションを簡単に作成し、あらゆる種類のデータを保存および取得できます。

以上がMongoDB を使用して Spring Boot でドキュメント ストレージとクエリを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)