2017-09-14 48 views
-1

我有一段代碼,如下所示,並且在Java中出現此錯誤。 coll是我需要插入數據的集合。我希望mongodb會自動生成ID,所以把相同的數據(在for循環中)無關緊要,但我得到了這個錯誤。我該怎麼辦?在Mongo Java中出現錯誤11000,DuplicateKeyException

 // String json1 = XML.toJSONObject(xml_text).toString(); 
    // DBObject dbo = (DBObject) com.mongodb.util.JSON.parse(json1); 
    // List<DBObject> list = new ArrayList<>(); 
    // list.add(dbo); 

     for (int i = 0; i < 5000; i++) { 
      coll.insert(list); 
     } 

db.collection.getIndexes返回

switched to db ice 
> db.next.getIndexes() 
[ 
    { 
      "v" : 2, 
      "key" : { 
        "_id" : 1 
      }, 
      "name" : "_id_", 
      "ns" : "ice.next" 
    } 
] 
> 
+1

你試圖插入相同的數據與不同的_id到數據庫? – nullpointer

+0

我只是插入相同的數據,並期待mongodb每次使用不同的ID,我這樣做,是的。 –

+0

我想你可能已經指定你正在插入的coll數據在模式中是唯一的,所以這會引發重複的入口代碼爲11000 – Vignesh

回答

0

解決。我在循環中使用了相同的DBObject,因此出現了錯誤。現在在循環內創建一個,沒有問題。感謝大家。