簡體   English   中英

無法使用Mongo Java驅動程序創建數據庫

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

它輸出的唯一數據庫是adminlocal myMongoDB沒有出現。 當我進入shell並輸入show databasesmyMongoDB也沒有出現。 我是因為使用真糊塗.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

link中所述 ,不建議使用getDB方法。 改用MongoClient.getDatabase(String databaseName)方法創建。

當第一個文檔保存到集合中時,MongoDB隱式創建一個集合。 僅當選項對象作為參數傳遞給它時, createCollection()方法才顯式創建一個集合。 通過鏈接獲取更多信息

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM