Java 应用程序无法在我的 MongoDB 数据库中识别我的 collections。

Java Application not recognizing my collections in my MongoDB databases.

我正在创建一个简单的 Web 应用程序,我正在尝试将应用程序连接到 MongoDB。这是我建立连接的 class。

public class JavaMongoDB连接{

public static void main(String[] args) {
    try {
    MongoClient mongoClient = null;

        mongoClient = new MongoClient();

    List<String> databases = mongoClient.getDatabaseNames();

    for(String dbName: databases) {
        System.out.println("Databases: " + dbName);

        DB db  = mongoClient.getDB(dbName);

        Set<String> collections = db.getCollectionNames();

        for(String colName : collections) {
            System.out.println("\t + Collection: "+colName);

        }

    }
    mongoClient.close();


    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

} }

当我 运行 这个 class 作为一个 Java 应用程序时,这是我的结果

数据库:admin 数据库:预算 数据库:配置 数据库:db 数据库:本地 数据库:myTestDB

但是,当我进入终端并运行以下命令时,这是我的结果。

  1. 显示数据库

回复: 管理 0.000GB 预算 0.000GB 配置 0.000GB 数据库 0.000GB 本地 0.000GB 我的测试数据库 0.000GB

  1. 使用 myTestDB

  2. 显示collections

回复: 预算 预算 我的收藏

那么,为什么当我 运行 这个 java 应用程序时 Budget、budget 和 myCollection 没有出现??

如果您使用的是 MongoDB Java 驱动程序的当前版本(当前为 3.7),请使用 MongoDatabase 而不是 DB

MongoClient mongoClient = new MongoClient();

for(String databaseName : mongoClient.listDatabaseNames()) {
    System.out.println("Database: " + databaseName);

    MongoDatabase db = mongoClient.getDatabase(databaseName);

    for(String colName : db.listCollectionNames()) {
        System.out.println("\t + Collection: " + colName);
    }
}

mongoClient.close();

以上代码应具有类似于以下的输出:

Database: admin
         + Collection: system.version
Database: config
         + Collection: system.sessions
Database: local
         + Collection: startup_log
Database: test
         + Collection: testcoll1
         + Collection: testcoll2