mongooseinsertMany限制

Mongoose 4.4现在有了一个insertMany函数,它可以让你validation一个文件数组,如果所有的操作都是有效的,而不是每个文档都有一个,

var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }]; Movies.insertMany(arr, function(error, docs) {});

如果我有一个非常大的arrays,我应该批这些? 或者在大小或数组上没有限制?

例如,我想为每部电影创build一个新的文档,并且我有一万部电影。

我build议根据个人经验,100-200批次给你良好的性能,而不会给你的系统带来压力。

insertMany组操作最多可以有1000个操作。 如果一个组超过了这个限制,MongoDB会把这个组分成1000个或更less的小组。 例如,如果队列由2000个操作组成,MongoDB将创build2个组,每个组有1000个操作。

大小和分组机制是内部性能细节,在未来的版本中可能会有所变化。

在分片集合上执行有序的操作列表通常比执行无序列表要慢,因为对于有序列表,每个操作必须等待上一个操作完成。

该方法使用该数组,并开始通过MongoDB中的insertMany方法插入它们,所以数组本身的大小实际上取决于您的机器可以处理多less。

但是请注意,还有一点不是限制,而是值得考虑的一点,就是MongoDB如何处理多个操作,默认情况下,它一次处理一批1000个操作 ,并分割更多的操作 。