我想在MongoDB中进行批量插入作业,我在mongoose中找到了两种方法:
一种方法是使用insert
:
dataArr = [
{
id: "",
name: ""
}
{
id: "",
name: ""
}
]
Collection.insert(dataArr)
另一种方式是Model.create
:
Model.create(dataArr)
两者都可以完成批量插入作业,但它们之间的区别是什么?
哪一个效率更高?
答案 0 :(得分:27)
在Mongoose中,有Model.create
和Collection.insert
(后者不是Mongoose的严格组成部分,而是基础MongoDB驱动程序的一部分。)
根据Mongoose开发人员的说法,当他们使用一系列文档调用它们时basically the same,虽然查看代码会让我觉得存在细微差别(警告:我没有' t看了那个,所以我可能会误解以下内容):
Model.create
将调用在您的架构上声明的任何验证器/挂钩; Model.create
为数组中的每个文档执行.save
,从而导致N
数据库调用(其中N
是数组中的文档数); Collection.insert
执行一次大型数据库调用; 答案 1 :(得分:0)
根据我所读的内容,Collection.insert是mongoDB驱动程序的功能,当插入大量数据(例如数百万个数据)之类时,它绕开了猫鼬验证的速度要快得多。
小心处理
答案 2 :(得分:0)
它们的含义大致相同。您可以使用它们中的任何一个。