Mongoose 4.4现在有一个insertMany函数,可以让你验证一个文档数组,如果有效就插入它们,只需一次操作,而不是每个文档一次:

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

如果我有一个非常大的数组,我应该批处理这些吗?或者对大小或数组没有限制?

例如,我想为每部电影创建一个新文档,我有10000部电影.

推荐答案

我建议根据个人经验,100-200批次可以在不给系统带来压力的情况下提供良好的性能混合.

insertMany操作组最多可以有1000个操作.如果一个组超过此限制,MongoDB将把该组分成1000个或更少的小组.例如,如果队列包含2000个操作,MongoDB将创建2个组,每个组包含1000个操作.

尺寸和分组机制是内部性能细节,在future 版本中可能会发生更改.

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

Mongodb相关问答推荐

如何从MongoDB集合中获取第一个和最后一个元素?

在MongoDB Aggregate for My BooksDB中将`$match`放在`$unwin`之前或之后的区别

如何填充Mongoose中的嵌套引用

匹配/筛选/投影对象中数组中数组中的嵌套字段

为什么使用 Golang Mongo 驱动程序进行简单查询需要超过 2 秒?

MongoDB:从开始日期和结束日期数组中匹配特定日期的聚合查询

根据条件删除一些数组元素并将数组的大小更新为mongo中的另一个文件

程序可以运行,但我不断收到发送到客户端后无法设置标题,我应该忽略它吗?

在golang中的mongodb中的集合列表中打印集合

MongoDB查询仅返回嵌入文档

为什么一个 mongodb 副本集需要奇数个投票 node ?

哪种 NoSQL DB 最适合 OLTP 金融系统?

声明多个模式后无法从数据库中获取数据(mongoose + express + mongodb

更新 mongoengine 中的嵌入文档列表

为 php 5.6 (XAMPP) 添加 mongodb 扩展

不能在模块外使用 import 语句

MongoDB聚合将字符串数组连接到单个字符串

Mongoose:查询starts with

spring 数据MongoDB.生成id的错误

如何使用户的邮箱在 mongoDB 中唯一?