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

标签 node.js mongodb insert mongoose

我想在 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 将调用在您的架构上声明的任何验证器/ Hook ;
  • Model.create 为数组中的每个文档执行 .save,导致 N 数据库调用(其中 N 是数组中的文档数); Collection.insert 执行一次大型数据库调用;

关于node.js - Mongoose:Model.create 和 Collection.insert 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19701154/

相关文章:

javascript - 只为一个参数 stub 函数

mongodb - 使用 ReactiveMongo 在 MongoDB 中搜索文本

java - java双向链表插入排序算法

javascript - MongoDB:匹配多个的投影

javascript - 保存不保存任何数据

python - 尝试将列表项添加到 tkinter 中的文本框

MySQL "inserts"生产环境和本地环境速度差异太大!

node.js - 如何知道读取文件时使用什么编码?

ios - hmac nsdictionary - 表达 req.body

javascript - 当指定的键不存在时,为什么 S3.deleteObject 不会失败?