2016-05-12 5 views
0

У меня есть Mongo setup. У меня проблема, когда я не вижу никаких данных, создаваемых в клиенте Mongo в командной строке cmd.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

I не знаю, почему cmd не работает.

+0

Вы уверены, что коллекция не пуста ?? – rummykhan

+0

его пустой, но сохранение данных иногда работает, а не – user3650234

+0

Извините, я не читал ур полностью, просто прочитал сейчас, ур код в порядке, можно попробовать только вставить не вставлять много – rummykhan

ответ

1

В вашей MongoShell вы используете разные БД, чем в своей программе.

Вы пытаетесь перечислить все записи в базе данных . Но коллекция автомобилей находится в базе данных testdb.

Правильная последовательность:

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

, и вы увидите ваши записи.

+0

да спасибо за ваш ответ, я осознал свою ошибку вчера. «Использовать» относится только к базам данных. Надеюсь, это может помочь другим, я новичок в Mongo, чтобы он помог новым пользователям. – user3650234

Смежные вопросы