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

时间:2013-10-31 08:05:38

标签: node.js mongodb insert mongoose

我想在MongoDB中进行批量插入作业,我在mongoose中找到了两种方法:

一种方法是使用insert

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

Collection.insert(dataArr)

另一种方式是Model.create

Model.create(dataArr)

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

哪一个效率更高?

3 个答案:

答案 0 :(得分:27)

在Mongoose中,有Model.createCollection.insert(后者不是Mongoose的严格组成部分,而是基础MongoDB驱动程序的一部分。)

根据Mongoose开发人员的说法,当他们使用一系列文档调用它们时basically the same,虽然查看代码会让我觉得存在细微差别(警告:我没有' t看了那个,所以我可能会误解以下内容):

  • 使用Model.create将调用在您的架构上声明的任何验证器/挂钩;
  • Model.create为数组中的每个文档执行.save,从而导致N数据库调用(其中N是数组中的文档数); Collection.insert执行一次大型数据库调用;

答案 1 :(得分:0)

根据我所读的内容,Collection.insert是mongoDB驱动程序的功能,当插入大量数据(例如数百万个数据)之类时,它绕开了猫鼬验证的速度要快得多。

小心处理

答案 2 :(得分:0)

它们的含义大致相同。您可以使用它们中的任何一个。