lif*_*ian 15 mongoose mongodb node.js
Mongoose 4.4现在有一个insertMany函数,它允许您验证文档数组并插入它们,如果有效,只需一个操作,而不是每个文档一个:
var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }];
Movies.insertMany(arr, function(error, docs) {});
如果我有一个非常大的数组,我应该批量这些吗?或者大小或阵列没有限制?
例如,我想为每部电影创建一个新文档,我有10,000部电影.
Sal*_*eem 11
我建议根据个人经验,批量100-200为您提供良好的性能组合,而不会给您的系统带来压力.
insertMany操作组最多可以有1000个操作.如果一个组超过此限制,MongoDB会将该组划分为1000或更少的较小组.例如,如果队列包含2000个操作,MongoDB将创建2个组,每个组具有1000个操作.
大小和分组机制是内部性能详细信息,在将来的版本中可能会有所变化.
在分片集合上执行有序操作列表通常比执行无序列表慢,因为对于有序列表,每个操作必须等待上一个操作完成.