2017-02-21 13 views
0

簡単な質問:mongo(またはそれに関しては任意のdb)では、upsertクエリはinsert + updateクエリのより良い代替方法です。Insert + Update/Upsert?

upsert - >見つかった場合はドキュメントを見つけて更新し、新しいドキュメントを挿入します。私はこれが、人生を楽にし、パフォーマンスを向上させると言う記事を読んだ。 (本質的に2つの操作) insert - >文書が存在するかどうかをチェックし、そうでない場合は - >文書を挿入し、エラーをスローします。 (2回の操作) updateは、挿入の逆です。

この投稿はupsertより良い選択だと思われますが、めったに更新されないデータがあればどうしますか? insert & updateクエリが意味をなさないか、upsert操作ですか?

答えて

1

ほとんどの場合、新しいデータを挿入している場合がありますが、そのデータの中には、更新することがわかっているドキュメントがある場合は、エラー処理やルーチンのチェックを追加する必要がありません。その場合、「より良い」ものになります。ただし、データに依存し、例外をどのように処理するかによって異なります。警告なしでドキュメントを更新しても問題ないこと、および既存のデータのために挿入が失敗することがないことを確認してください。

+0

同じ考えで終わりました!^_ ^ –