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