Java的程序没有将所有数据集到MongoDB的表

问题描述:

我有以下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

您的代码没有问题。您可以添加对象列表,如this !!!

尝试将“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)