是MongoRepository的save方法,一个接一个地保存文件,或者它使用mongo的批量插入功能。我面临的问题是,我将1000个文档传递给存储库,但性能上下文没有任何变化。
Interface MongoRepository<T,ID extends Serializable>
save
<S extends T> List<S> save(Iterable<S> entites)
Specified by:
save in interface CrudRepository<T,ID extends Serializable>
不确定它的超类crudrespository正在做什么,因为这是特定于JPA而不是mongo
答案 0 :(得分:5)
它使用批量插入。以MongoRepository实现 - SimpleMongoRepository#save方法为例。如果是插入,它将从insertAll
调用MongoOperations
,MongoOperations
的实现为MongoTemplate
。现在,您可以查看MongoTemplate#insertAll,然后您会看到MongoTemplate#doInsertAll调用MongoTemplate#doInsertBatch方法执行批量插入。