2016-09-30 8 views
0

私は親文書を参照しています。問題は、参照文書をすべて削除して新しい文書を挿入し、古い文書を更新し、新しい文書を挿入し、削除した文書を削除することです。 SQLでは、それは非常に良い練習ではない、インデックスが断片化される原因となる。代わりに更新する

+0

ドキュメント全体または一部の属性を更新したいですか? –

+0

まあ、想像してみれば、私は参照商品で請求書を持っています。誰かが請求書を編集して保存すると、削除された製品、更新された/挿入された製品の確認はしたくない。私はすべての古い製品を取り除き、そこに新しい製品を入れたいだけです。 –

答えて

0

文書をMongoDBに挿入すると、各文書はディスク上の前の文書のすぐ隣に置かれます。文書 が大きくなればこのように、それは空間にフィットもはや意志ない、それはもともと に書かれたと私たちは私が包み削除して挿入するために、その優れた信じるコレクション

の別の部分に移動されますサイズがわからない場合は、更新のサイズが大きければ再配置の際のパフォーマンスの問題に直面することができます。

私は間違っていないよ場合は、何を達成しようとしていること原稿交換の動作です、私はあなたがdb.collection.findAndModify()を使用することができると信じて、それはあなたがあなたの希望を達成するのを助けることができフィールドを、削除更新を持っています動作。

関連する問題