私は、ノード-mongodb-driverをnodeJSに直接使用してコードを書いています。自分の_id
スペースを使用するコレクションを私のデータベースに設定しました。そこには、ユニークなドキュメントごとにユニークな_id
があることが保証されています。つまり、アイテムがデータベースに追加される方法は、同じアイテムが複数回コレクションに挿入される可能性が高いということです。つまり、同じアイテムを複数回使用することを意味します。node-mongodb-nativeでは、重複した_idを持つ文書を挿入する可能性がある場合、チェックする必要はありますか?
私が今問題を避けるためにやっていることは、挿入前にcollection.findOne(_id:ID)
と呼んで、すでにコレクションに入っているドキュメントを挿入しようとしていないことを確認することです。しかし、私は一度にたくさんのドキュメントを追加しているので、非同期である必要があります。findOne()
のコールバックが呼び出されたときに、適切な変数(該当する場合)を挿入できるように、多数の変数を保存しています。
しかし、文書がすでに存在するかどうかを確認するのをやらなくても、変数を保存することはできません。同じ_id
のコレクションにすでにドキュメントがある場合、私はちょうど、_id
が既に存在し、コードが実行され続けると言うエラーを得ることになります。これをコーディングすると、私のソフトウェアの実行時間(関数が呼び出されない)とそれが占めるRAM内のスペース(多くの変数の保存が少なくなります)が減少します。
しかし、誰かがこれをしない理由があると思っていたかどうかを見たいと思っていました。 のような関数がエラーを返すと、何が起こっているのか、起きている可能性がありますか?
ベスト、と感謝は、
サミ
私の状況では、1台のサーバーしか使用していません。唯一可能な挿入エラーは重複IDエラーであると仮定しましょう。 'findOne()'を使用して何かが先に存在するかどうかを確認するよりも、この重複エラーを受け取る方がコストがかかりますか?私はそれが事実ではないように感じるが、私は確かに分からないので、私はここで尋ねる... – thisissami