7 java concurrency mongodb mongodb-java
获取通过Java插入的文档的Mongo生成ID的最佳方法是什么.
插入文档的Java进程是多线程的,这意味着我们需要一些原子方式来插入和返回对象的ID.
另外,如果我们设置一个唯一索引,如果该对象是重复的,是否会返回一个ID?
谢谢!
Sea*_*lly 13
尽早生成ObjectId,在插入中使用它,并且不需要让数据库将其返回给您.ObjectId不使用共享序列号是唯一的,因此如果在插入或检索之后生成一个序列号并不重要.
public ObjectId createThing() {
ObjectId result = new ObjectId();
BasicDBObject thingToInsert = new BasicDbObject();
thingToInsert.put('_id', result);
//set other fields here
collection.insert(thingToInsert);
return result;
}
Run Code Online (Sandbox Code Playgroud)