2016-10-05 4 views
1

Я хочу вставить мои данные json в базу данных mongo, импортировать mongo Driver v 3.2.2 и создать базу данных, коллекцию в mlab.com, но я не могу отправить данные в базу данных такого документа.как можно вставлять данные в mongodb из приложения Android?

это мой код:

try { 
    MongoClientURI uri = new MongoClientURI("mongodb://user:[email protected]:41939/vado"); 
    MongoClient client = new MongoClient(uri); 
    DB db = client.getDB(uri.getDatabase()); 
    DBCollection collection = db.getCollection("salam"); 

    DBObject dbObject = (DBObject) JSON.parse("{'name':'mkyong', 'age':30}"); 


    collection.insert(dbObject); 

    DBCursor cursorDoc = collection.find(); 
    while (cursorDoc.hasNext()) { 
    System.out.println(cursorDoc.next()); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

В чем проблема с кодом? Любое исключение? Пожалуйста, отредактируйте это, чтобы предоставить его –

+0

ошибок в студии Android. Но документ не создан. – vahidmohammadisan

+0

Я не слишком знаком с Mongo, но мне хотелось бы думать, что есть метод findAll или метод find должен принимать некоторые параметры. В противном случае неясно, почему объект не будет вставлен, если не возникнут ошибки –

ответ

0

Ваш код был немного устаревшим. Я скорректировал его (используются Монго-драйвером 3.2.2) и испытан против моего местного Монго и она отлично работает:

try { 
    MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017/test"); 
    MongoClient client = new MongoClient(uri); 

    MongoDatabase db = client.getDatabase(uri.getDatabase()); 
    MongoCollection<BasicDBObject> collection = db.getCollection("salam", BasicDBObject.class); 

    BasicDBObject document = new BasicDBObject(); 
    document.put("name", "mkyong"); 
    document.put("age", 30); 
    collection.insertOne(document); 

    MongoCursor iterator = collection.find().iterator(); 

    while (iterator.hasNext()) { 
     System.out.println(iterator.next()); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

Убедитесь, что вы устанавливаете драйвер Монго через maven или gradle поэтому у вас есть все временные зависимости, а потому Для водителя mongo требуется bson и mongodb-driver-core.

0

Спасибо, сэр. Я использую mlab.com и получаю строку подключения ... import mongo-java-driver-3.4.0-SNAPSHOT и bson 3.3.0. enter image description here Состояние связи с изображением связано. но dont insert in database Код:

try { 
     MongoClientURI uri = new MongoClientURI("mongodb://va***:******@ds049446.mlab.com:49446/sensingt"); 
     MongoClient client = new MongoClient(uri); 

     MongoDatabase db = client.getDatabase(uri.getDatabase()); 
     MongoCollection<BasicDBObject> collection = db.getCollection("salam", BasicDBObject.class); 

     BasicDBObject document = new BasicDBObject(); 
     document.put("name", "mkyong"); 
     document.put("age", 30); 
     collection.insertOne(document); 

     MongoCursor iterator = collection.find().iterator(); 
     //System.out.println("Insert successfully"); 
     while (iterator.hasNext()) { 
      System.out.println(iterator.next()); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
+0

У вас есть какие-либо ошибки? У вашего пользователя mongo есть права на запись? Попробуйте подключиться к оболочке mongo и выполните те же действия. Попробуйте также с местным mongo db. Лучше установите зависимости с maven. – mkorszun

+0

НЕТ, вам нужно зайти в mlab и проверить, есть ли у пользователя, у которого есть права на запись ... – mkorszun

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