2017-04-04 56 views
0

我很困惑为什么Mongodb需要2种不同的方法insertManyinsertOne来插入数据。为什么只用insertMany?如果你想插入一个文件,如{ a: 1 },像insertMany([{ a: 1 }])这样的文字可以与insertOne({ a: 1 })在功能上完全相同,对吧?使用insertMany在Mongodb中插入一个文档

插入单个文档时,它们之间有任何性能差异吗?

关于其他CRUD功能的相同问题,任何想法都会感激!提前致谢!

回答

0

如果你有多个文件,一次插入,他们是在阵列然后insertmany()更快,而不是使用insertone()一遍又一遍的说,500个文件。 (考虑PHP或任何其他语言的循环与一次性直接操作)。

有一些注意事项:

  1. MongoDB的限制到了1000只@操作一次。注意这是操作没有文件。如果Mongodb需要将1000多个操作费用分开,这当然会成为可用内存的函数,这会影响很多事情(池化)等。
  2. 您必须让您的文档在数组中正确格式化,以便insertmany()正常工作。

基本相同的想法适用于所有的CRUD操作。这是速度,但记忆(与Mongo一样)是一个关键因素。

+0

我知道多个文档'insertMany'肯定比较好,但是对于单个文档怎么样? –

+0

如果你一次只有一个文档,我会建议'insertone()',因为没有理由分配Mongo为'insertmany()'操作所需的内存。正如我所提到的那样,需要考虑开销。 – twg

+0

谢谢。是否有任何引用或文档解释了这两种方法之间的内存使用情况或任何其他性能差异? –

相关问题