2014-10-09 30 views
1

我有以下Java程序,應該插入2個表中的記錄testcoll:Java的程序沒有將所有數據集到MongoDB的表

package mongodbTest; 

import java.net.UnknownHostException; 

import com.mongodb.BasicDBObject; 
import com.mongodb.DB; 
import com.mongodb.DBCollection; 
import com.mongodb.Mongo; 

public class HelloMongoDB { 

    public static void main(String[] args) { 

     Mongo mongo = null; 
     DB db=null; 
     DBCollection table=null; 

     // Connection to the MongoDB-Server 
     try { 
      mongo = new Mongo("localhost", 27017); 
     } catch (UnknownHostException e) { 
      e.printStackTrace(); 
     } 

     //insert data 
     db = mongo.getDB("testdb"); 
     table = db.getCollection("testcoll"); 

     //create document and insert 
     BasicDBObject document = new BasicDBObject(); 
     document.put("name", "Andre"); 
     document.put("age", 34); 

     BasicDBObject document2 = new BasicDBObject(); 
     document2.put("name", "Beatrix"); 
     document2.put("age", 19); 

     table.insert(document); 
     table.insert(document2); 

    } 
} 

就像你所看到的,它應該插入2記錄到testcoll集合中,但它只插入第一個。

> db.testcoll.find() 
{ "_id" : ObjectId("54369b986d4b35dd1125e7ea"), "name" : "Andre", "age" : 34 } 

有什麼建議嗎?

Greetings,Andre

+0

如果我運行完全相同的代碼,我能夠同時檢索的文件,你確定你檢查正確嗎? – Jhanvi 2014-10-10 07:45:49

+0

可以更好地審視處理異常的方式。如果發生異常,表示您未能連接,則不應繼續嘗試插入文檔。 – 2014-10-12 07:40:27

回答

0

您的代碼沒有問題。您可以添加對象列表,如this !!!

0

嘗試將「new Mongo」替換爲「new MongoClient」,它將默認爲已確認的寫入,因此如果任何插入操作失敗將拋出異常。

請參閱Javadoc以瞭解這兩個類別的不同之處。

http://api.mongodb.org/java/current/com/mongodb/Mongo.html http://api.mongodb.org/java/currrent/com/mongodb/MongoClient.html

您也可以使用重載的插入方法插入的文件清單:

http://api.mongodb.org/java/current/com/mongodb/DBCollection.html#insert(java.util.List)

相關問題