0

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

公共类 JavaMongoDBConnection {

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();
    }

} }

当我将此类作为 Java 应用程序运行时,这是我的结果

数据库:admin 数据库:budget 数据库:config 数据库:db 数据库:local 数据库:myTestDB

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

  1. 显示数据库

响应:管理员 0.000GB 预算 0.000GB 配置 0.000GB 数据库 0.000GB 本地 0.000GB myTestDB 0.000GB

  1. 使用 myTestDB

  2. 显示收藏

回复:预算预算 myCollection

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

4

1 回答 1

0

如果您使用的是当前版本的 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
于 2018-05-23T23:55:22.077 回答