我是 mongo DB 的新手,现在刚刚学习基础知识。我正在尝试显示当前数据库的名称:
try {
// Creates a new instance of MongoDBClient and connect to localhost
// port 27017
MongoClient mongoClient = new MongoClient("localhost", 27017);
mongoClient.getDB("myMongoDB");
List<String> listofDB= mongoClient.getDatabaseNames();
for(String dbName : listofDB){
System.out.println(dbName);
}
} catch (Exception e) {
e.printStackTrace();
}
它打印出的唯一数据库是 admin
和 local
。 myMongoDB
没有出现。当我进入 shell 并输入 show databases
时,myMongoDB
也不会出现。我真的很困惑,因为通过使用 .getDB()
方法,如果传递到该方法的字符串不是当前数据库的名称,那么 mongo 将创建该名称的数据库.. here
我正在使用以下依赖项:
`<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.3</version>
</dependency>`
最佳答案
这不会打印 myMongoDB,因为它尚未创建。 您需要执行一些事务,例如创建集合、将数据插入集合中。 然后它将显示在该列表中。 仅选择数据库不会在 mongo DB 中创建数据库。
由于 mongodb 的默认行为是延迟创建数据库,直到进行文档插入为止。
您可以点击此链接使用java驱动程序对mongo进行一些操作: http://mongodb.github.io/mongo-java-driver/2.13/getting-started/quick-tour/
如果您想使用命令行创建集合,可以点击以下链接: https://docs.mongodb.com/manual/reference/method/db.createCollection/
关于java - 无法使用 Mongo Java 驱动程序创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46430775/