2017-04-04 13 views
0

Mongodbに2つの異なるメソッドinsertManyinsertOneが必要な理由について混乱しています。なぜinsertManyを使用するのですか? { a: 1 }のように1つのドキュメントを挿入する場合は、insertMany([{ a: 1 }])のような文章を機能的にはinsertOne({ a: 1 })とまったく同じにすることができます。insertManyを使用して1つのドキュメントをMongodbに挿入します

1つのドキュメントを挿入するだけでパフォーマンスに違いはありますか?

他のCRUD関数についても同じ質問がありますのでご了承ください!前もって感謝します!

答えて

0

の配列に複数のドキュメントを挿入する場合は、insertone()を500個のドキュメントに対して繰り返し使用するよりも、insertmany()が高速です。 (PHPや他の言語のループと比較して、一度の操作で考えると)

いくつかの注意点があります。

  1. MongoDBは一度@ 1000の操作にあなたを制限します。文書ではない操作であることに注意してください。手数料が1000を超える場合、Mongodbはそれらを分割する必要があります。これは、もちろん、多くのことに影響を与える可能性のあるメモリの機能になります(プーリングなど)
  2. 正しく動作するには、insertmany()用の配列で文書を正しくフォーマットする必要があります。

基本的な考え方は、すべてのCRUD操作に適用されます。それはスピードですが、(いつものようにモンゴーと同様に)記憶は重要な要素です。

+0

私は複数のドキュメントを知っていた 'insertMany'は間違いなく良いですが、1つのドキュメントについてはどうですか? –

+0

一度に1つのドキュメントしかない場合は、 'insertmany()'操作のためにMongoが必要とするメモリを割り当てる理由がないので、 'insertone()'を提案します。私が言及したように、考慮するオーバーヘッドがあります。 – twg

+0

ありがとうございます。 2つの方法の間のメモリ使用量やその他のパフォーマンスの違いについて説明する参照や文書はありますか? –

関連する問題