最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

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

IT培训 admin 5浏览 0评论

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开发人员的说法,当使用一系列文档调用它们时,它们就是basically the same,虽然查看代码会让我觉得存在细微差别(警告:我没有仔细查看代码,所以我可能会误认为以下):

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

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开发人员的说法,当使用一系列文档调用它们时,它们就是basically the same,虽然查看代码会让我觉得存在细微差别(警告:我没有仔细查看代码,所以我可能会误认为以下):

  • 使用Model.create将调用模式中声明的任何验证器/钩子;
  • Model.create为数组中的每个文档执行.save,从而生成N数据库调用(其中N是数组中的文档数); Collection.insert执行一次大型数据库调用;
发布评论

评论列表 (0)

  1. 暂无评论