Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでMongoDBのコレクションを削除する方法【drop()メソッドの使い方を解説】

MongoDBでは、drop()メソッドを使うことで、既存のコレクションを簡単に削除できます。この記事では、MongoDBシェルでの基本的な使い方と、Javaプログラムからコレクションを削除する手順をサンプルコード付きで解説します。

基本構文

db.coll.drop()

各項目の意味は以下の通りです。

  • db:操作対象のデータベース
  • coll:削除したいコレクション名

drop()メソッドは、削除に成功すると true を返します。

MongoDBシェルでの実行例

まず、サンプルデータベースに3つのコレクションを作成した状態を想定します。

> use sampleDatabase
switched to db sampleDatabase
> db.createCollection("students")
{ "ok" : 1 }
> db.createCollection("teachers")
{ "ok" : 1 }
> db.createCollection("sample")
{ "ok" : 1 }
> show collections
sample
students
teachers

次のコマンドを実行すると、「sample」という名前のコレクションが削除されます。

> db.sample.drop()
true
> show collections
students
teachers

「sample」が一覧から消え、コレクションが正常に削除されたことが確認できます。

Javaプログラムでコレクションを削除する

Javaからコレクションを削除するには、com.mongodb.client.MongoCollectionインターフェースが提供するdrop()メソッドを使用します。

JavaプログラムでMongoDBのコレクションを削除するには、以下の手順に従います。

  • システムにMongoDBがインストールされていることを確認する
  • プロジェクトのpom.xmlにMongoDBドライバーの依存関係を追加する
  • MongoClientクラスをインスタンス化してクライアントを作成する
  • getDatabase()メソッドでデータベースに接続する
  • getCollection()メソッドで削除対象のコレクションオブジェクトを取得する
  • drop()メソッドを呼び出してコレクションを削除する

1. 依存関係の追加

Javaプロジェクトのpom.xmlに、以下の依存関係を追加します。

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

なお、新しいバージョンのドライバー(4.x以降)では、後継のmongodb-driver-syncアーティファクトの使用が推奨されています。

2. サンプルコード

複数のコレクションを作成し、そのうち1つを削除する完全なサンプルプログラムです。

import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.MongoClient;

public class DroppingCollection {
    public static void main(String args[]) {
        // Mongoクライアントの作成
        MongoClient mongo = new MongoClient("localhost", 27017);

        // データベースへの接続
        MongoDatabase database = mongo.getDatabase("mydatabase");

        // 複数のコレクションを作成
        database.createCollection("sampleCollection1");
        database.createCollection("sampleCollection2");
        database.createCollection("sampleCollection3");
        database.createCollection("sampleCollection4");

        // コレクション一覧の取得
        MongoIterable<String> list = database.listCollectionNames();
        System.out.println("コレクション一覧:");
        for (String name : list) {
            System.out.println(name);
        }

        // コレクションの削除
        database.getCollection("sampleCollection4").drop();
        System.out.println("コレクションを削除しました");

        // 削除後のコレクション一覧を表示
        System.out.println("削除後のコレクション一覧:");
        for (String name : list) {
            System.out.println(name);
        }
    }
}

3. 実行結果

コレクション一覧:
sampleCollection4
sampleCollection1
sampleCollection3
sampleCollection2
コレクションを削除しました
削除後のコレクション一覧:
sampleCollection1
sampleCollection3
sampleCollection2

実行結果を見ると、「sampleCollection4」だけが一覧から消えており、drop()メソッドによってコレクションが正しく削除されたことがわかります。

補足:新しいドライバーでのクライアント生成

上記のサンプルは旧式の com.mongodb.MongoClient を使用していますが、ドライバー4.x以降ではこのコンストラクタは非推奨です。新しいバージョンでは、以下のように MongoClients.create() を使うのが一般的です。

import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;

MongoClient mongo = MongoClients.create("mongodb://localhost:27017");

それ以外の手順(getDatabase() → getCollection() → drop())は同じですので、環境に合わせて使い分けてください。

  1. JavaでMongoDBの全データベース一覧を取得する方法

    MongoDBでは、シェル上で show dbs コマンドを実行するだけで、サーバー内に存在するデータベースの一覧を簡単に確認できます。> show dbs admin config local myDatabase sampleDatabase students test testDBJavaアプリケーションからMongoDBに接続し、すべてのデータベース名を取得したい場合は、listDatabaseNames() メソッドを使用します。このメソッドは MongoIterable<String> 型のオブジェクトを返すため、拡張for文を使って各データベース名を1つずつ取り

  2. JavaでMongoDBデータベース内のすべてのコレクションを一覧表示する方法

    MongoDBでは、show collections コマンドを使うことで、データベースに存在するすべてのコレクションの一覧を表示できます。 例 たとえば、MongoDBデータベースに以下のように3つのコレクションを作成したとします。 > use sampleDatabase switched to db sampleDatabase > db.createCollection(students) { ok : 1 } > db.createCollection(teachers) { ok : 1 } > db.createCollection(sample) { o