在mongodb中未显示重复的错误

时间:2016-03-14 06:46:18

标签: mongodb

_id被认为是唯一的,因为它是由mongoDB自动生成的。但是如果我自己生成_id并且并发运行没有重复键错误被抛出。这样的数据具有相同的_id会发生什么,它会被跳过或者它甚至没有研究这种类型的数据

2 个答案:

答案 0 :(得分:1)

_id是文档的unique index

  

MongoDB拒绝包含索引字段重复值的所有文档。如果有多个文档没有索引字段的值或缺少索引字段,则索引构建将失败并出现重复键错误。

WriteResult({
   "nInserted" : 0,
   "writeError" : {
      "code" : 11000,
      "errmsg" : "E11000 duplicate key error index: test.collection.$a.b_1 dup key: { : null }"
   }
})

如显示的错误,不会将文档插入db中以获取重复键。

答案 1 :(得分:0)

参考此链接 http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html

使用' WriteConcern'对于该集合,如果您为' _id'插入重复值它会返回错误信息, 例如,如果您通过Java代码访问,请使用下面的代码

 collection.setWriteConcern(new WriteConcern(1));
   try{
            BasicDBObject document = new BasicDBObject();
            document.put("_id", 1);
            document.put("name", "Tamil");
            document.put("age",123);
            document.put("DOB",02-03-1991);

            collection.insert(document);

        } catch (Exception ie) {

            System.out.println("Exception in Write Operation: "+ie.getMessage());

        }