2016-05-12 67 views
0

我有Mongo設置和運行。我遇到了一個問題,我無法在cmd提示符下看到在Mongo客戶端中創建的任何數據。Mongodb Java cmd find()。pretty()不起作用

我正在使用Mongo 3.2.1 Java驅動程序和Android Studio。

我已經連接了端口,地址和工作。使用下面的代碼來創建數據庫和收集工作。但是,當我保存數據時,它不會被保存(有時可用,有時不可用),我不知道爲什麼。

MongoClient mongoClient = new MongoClient("xxx.xxx.x.x", xxxxx); 
    MongoDatabase database = mongoClient.getDatabase("testdb"); 

    try { 

     database.createCollection("cars"); 
    } catch (MongoCommandException e) { 

     database.getCollection("cars").drop(); 
    } 

    List<Document> writes = new ArrayList<>(); 

    MongoCollection<Document> carsCol = database.getCollection("cars"); 

    Document d1 = new Document("_id", 1); 
    d1.append("name", "Audi"); 
    d1.append("price", 52642); 
    writes.add(d1); 

    Document d2 = new Document("_id", 2); 
    d2.append("name", "Mercedes"); 
    d2.append("price", 57127); 
    writes.add(d2); 

    Document d3 = new Document("_id", 3); 
    d3.append("name", "Skoda"); 
    d3.append("price", 9000); 
    writes.add(d3); 

    Document d4 = new Document("_id", 4); 
    d4.append("name", "Volvo"); 
    d4.append("price", 29000); 
    writes.add(d4); 

    Document d5 = new Document("_id", 5); 
    d5.append("name", "Bentley"); 
    d5.append("price", 350000); 
    writes.add(d5); 

    Document d6 = new Document("_id", 6); 
    d6.append("name", "Citroen"); 
    d6.append("price", 21000); 
    writes.add(d6); 

    Document d7 = new Document("_id", 7); 
    d7.append("name", "Hummer"); 
    d7.append("price", 41400); 
    writes.add(d7); 

    Document d8 = new Document("_id", 8); 
    d8.append("name", "Volkswagen"); 
    d8.append("price", 21600); 
    writes.add(d8); 

    carsCol.insertMany(writes); 


    MongoIterable<String> dbs = mongoClient.listDatabaseNames(); 
    System.out.println("The Following are your Databases!"); 
    for(String checkDBS : dbs){ 
     System.out.println(checkDBS); 
    } 

    mongoClient.close(); 

} 

運行上述內容後,我通過查詢來檢查數據,但似乎沒有做任何事情。有時它顯示並且有時候,這些命令不會執行任何操作。

Cmd

修訂 ====================================== =========================

它確實存儲的數據,但我仍然不能查詢使用cmd,但我試着用Java查詢它工作

iterable.forEach(new Block<Document>() { 
     @Override 
     public void apply(final Document document) { 
      System.out.println(document); 
     } 
    }); 

enter image description here

我不知道爲什麼cmd不起作用。

+0

你確定收藏並非空? – rummykhan

+0

其空但保存的數據有時工作,而不是 – user3650234

+0

對不起,我沒有完全讀你的問題,只是現在讀,你的代碼是好的,你可以嘗試只插入不插入很多 – rummykhan

回答

1

在您的MongoShell中,您使用的數據庫不同於您的程序中的數據庫。

您正在嘗試列出汽車數據庫中的所有記錄。但收集汽車是在testdb數據庫。

正確的順序是:

use testdb 
db.cars.find().pretty() 

,你會看到你的記錄。

+0

是的,謝謝你的回答,我昨天意識到我的錯誤。 「使用」只是指數據庫。希望它可以幫助別人,我是Mongo的新手,所以它可以幫助新用戶。 – user3650234