2017-04-04 59 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

謝謝。是否有任何引用或文檔解釋了這兩種方法之間的內存使用情況或任何其他性能差異? –

相關問題