我想在 MongoDB 中进行批量插入作业,我在 mongoose 中找到了两种方法:
一种方法是使用 insert
:
dataArr = [
{
id: "",
name: ""
}
{
id: "",
name: ""
}
]
Collection.insert(dataArr)
另一种方法是 Model.create
:
Model.create(dataArr)
两者都可以完成批量插入作业,但它们之间有什么区别?
哪个效率更高?
原文由 hh54188 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Mongoose 中,有
Model.create
和Collection.insert
(后者严格来说不是 Mongoose 的一部分,而是底层 MongoDB 驱动程序的一部分)。根据 Mongoose 开发人员的说法,当使用一组文档调用它们时,它们 基本相同,尽管查看代码让我觉得存在细微差别( 警告:我没有仔细查看代码 , 所以我可能会弄错关于以下):
Model.create
将调用在您的架构上声明的任何验证器/挂钩;Model.create
.save
数组中的每个文档执行 —,导致N
数据库调用(其中N
中的文档数为 —a大批);Collection.insert
执行一次大型数据库调用;