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开发人员的说法,当使用一系列文档调用它们时,它们就是basically the same,虽然查看代码会让我觉得存在细微差别(警告:我没有仔细查看代码,所以我可能会误认为以下):
- 使用
Model.create
将调用模式中声明的任何验证器/钩子; Model.create
为数组中的每个文档执行.save
,从而生成N
数据库调用(其中N
是数组中的文档数);Collection.insert
执行一次大型数据库调用;