Mongoose:Model.create和Collection.insert有什么区别

我想在MongoDB中做一个批量插入工作,我在mongoose中发现了两种方法:

一种方法是使用insert

 dataArr = [ { id: "", name: "" } { id: "", name: "" } ] 

Collection.insert(dataArr)

另一种方式是Model.create

 Model.create(dataArr) 

两者都可以完成批量插入作业,但它们之间有什么区别?

哪一个更有效率?

在Mongoose中,有Model.createCollection.insert (后者不是Mongoose的一部分,而是MongoDB的底层驱动程序)。

根据Mongoose开发者的说法,当用一系列文档调用的时候,它们基本上是一样的,但是看代码让我觉得有一些细微的差别( 警告 :我没有仔细看过代码所以我可能弄错了关于以下):

  • 使用Model.create将调用在您的模式中声明的任何校验器/钩子;
  • Model.create为数组中的每个文档执行一个.save ,导致N数据库调用(其中N是数组中的文档数); Collection.insert执行一个大型数据库调用;