[英]Unable to create a database using Mongo Java drivers
我是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()
方法,如果傳遞到該方法的字符串不是當前數據庫的名稱,然后蒙戈將創建一個名稱的數據庫.. 在這里
我正在使用以下依賴項:
`<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/
您是否嘗試過手動創建數據庫然后運行代碼? 我認為myMongoDB在這種情況下還不存在。 要在外殼中制作一個,請use myMongoDB
編輯:您還必須將至少一個集合放入數據庫中才能創建它。 https://www.tutorialspoint.com/mongodb/mongodb_create_database.htm
MongoClient mongoClient = new MongoClient();
MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator();
while(dbsCursor.hasNext()) {
System.out.println(dbsCursor.next());
}
還要檢查您的dpath (因為shell沒有返回您的數據庫,可能是它不在正確的路徑中)
嘗試使用mongod --dbpath /your/path
。
僅供參考,在將文檔插入數據庫中的集合中之前,實際上不會創建數據庫,這將隱式創建集合和數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.