2016-05-12 152 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