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

新手上路,请多包涵

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

一种方法是使用 insert

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

Collection.insert(dataArr)

另一种方法是 Model.create

 Model.create(dataArr)

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

哪个效率更高?

原文由 hh54188 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 445
2 个回答

在 Mongoose 中,有 Model.createCollection.insert (后者严格来说不是 Mongoose 的一部分,而是底层 MongoDB 驱动程序的一部分)。

根据 Mongoose 开发人员的说法,当使用一组文档调用它们时,它们 基本相同,尽管查看代码让我觉得存在细微差别( 警告:我没有仔细查看代码 所以我可能会弄错关于以下):

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

原文由 robertklep 发布,翻译遵循 CC BY-SA 3.0 许可协议

根据我读过的内容,Collection.insert 是 mongoDB 驱动程序的一个函数,它在插入大量数据(如数百万等)时速度要快得多,但代价是它绕过了 mongoose 验证。

小心轻放

原文由 chuni 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题