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

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

MongoDBでは、シェル上で show dbs コマンドを実行するだけで、サーバー内に存在するデータベースの一覧を簡単に確認できます。

> show dbs
admin
config
local
myDatabase
sampleDatabase
students
test
testDB

JavaアプリケーションからMongoDBに接続し、すべてのデータベース名を取得したい場合は、listDatabaseNames() メソッドを使用します。このメソッドは MongoIterable<String> 型のオブジェクトを返すため、拡張for文を使って各データベース名を1つずつ取り出して処理することができます。

サンプルコード

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

public class ListOfDatabases {
    public static void main(String args[]) {
        // Mongoクライアントを作成
        MongoClient mongo = new MongoClient("localhost", 27017);
        // データベース名の一覧を取得
        MongoIterable<String> list = mongo.listDatabaseNames();
        for (String name : list) {
            System.out.println(name);
        }
    }
}

実行結果

admin
config
local
myDatabase
sampleDatabase
students
test
testDB

このプログラムを実行すると、ローカルホスト(ポート27017)で稼働しているMongoDBサーバー上の全データベース名がコンソールに出力されます。シェルの show dbs コマンドと同じ結果が得られることがわかります。

なお、比較的新しいバージョンのドライバー(mongodb-driver-sync)では、MongoClients.create("mongodb://localhost:27017") のように接続文字列を使ってクライアントを生成する方法が推奨されています。また、認証が有効な環境では、接続文字列にユーザー名・パスワード・認証用データベースを含める必要がある点にも注意してください。

  1. Javaでフォルダ内のディレクトリ(フォルダ)のみを取得する方法

    Javaで特定のフォルダに含まれるファイルではなく、ディレクトリ(サブフォルダ)だけを取得したいケースはよくあります。本記事では、代表的な2つの方法——FileFilterインターフェースを使う方法と、NIOのFiles.walk()を使う方法——をサンプルコード付きで解説します。listFiles()メソッドとFileFilterの基本FileクラスのlistFiles()メソッドは、そのFileオブジェクトが表すパスに含まれるすべてのファイルおよびディレクトリの抽象パス名を、配列として返します。ここで活躍するのがFileFilterインターフェースです。FileFilterはパス名をフィル

  2. Javaでディレクトリ内のjpgファイル一覧を取得する方法

    FilenameFilterインターフェースを使った方法Fileクラスのlist(FilenameFilter filter)メソッドは、現在のFileオブジェクトが表すパスに存在するすべてのファイルおよびディレクトリの名前をString配列として返します。ただし、返される配列には、指定したフィルター条件を満たすファイル名のみが含まれます。FilenameFilterは、次の単一のメソッドを持つJavaのインターフェースです。accept(File dir, String name)拡張子に基づいてファイル名を取得したい場合は、このインターフェースを実装したクラスを作成し、そのインスタンスをF