Mongoose:Model.create和Collection.insert有什么区别
我想在MongoDB中做一个批量插入工作,我在mongoose中发现了两种方法:
一种方法是使用insert
:
dataArr = [ { id: "", name: "" } { id: "", name: "" } ]
Collection.insert(dataArr)
另一种方式是Model.create
:
Model.create(dataArr)
两者都可以完成批量插入作业,但它们之间有什么区别?
哪一个更有效率?
在Mongoose中,有Model.create
和Collection.insert
(后者不是Mongoose的一部分,而是MongoDB的底层驱动程序)。
根据Mongoose开发者的说法,当用一系列文档调用的时候,它们基本上是一样的,但是看代码让我觉得有一些细微的差别( 警告 :我没有仔细看过代码,所以我可能弄错了关于以下):
- 使用
Model.create
将调用在您的模式中声明的任何校验器/钩子; -
Model.create
为数组中的每个文档执行一个.save
,导致N
数据库调用(其中N
是数组中的文档数);Collection.insert
执行一个大型数据库调用;