1

文字列の検索/置換またはsqrt計算としましょう?

そのような操作が欠落しているため、たとえば a$replaceでは不可能ですupdate(私のテストコレクションでは、100k オブジェクトにフィールドを設定するのに約 50 ミリ秒しかかからないため、これがおそらく最も速いでしょう)。

すべてのドキュメントを単純に反復すると、約 45 秒かかります。クエリを更新中に使用しているフィールドに制限すると、少し速くなります。

今回はもちろん、より大きなコレクションでは大きくなります。したがって、コレクションを反復処理するよりも高速な方法があるかどうかという問題があります (たとえば、map reduce ジョブを使用しますか?)。

4

1 に答える 1

0

いいえ:)このような機能のネイティブサポートがないと、読み取り->変更->書き込みのアプローチで行き詰まります。つまり、同じドキュメントを読み書きする必要がある場合、50ミリ秒でそのプロセスに45秒近くかかることのないように管理するマシンで、10万個のオブジェクトにフィールドを書き込むことができます。ボトルネックは、そのパスを実行しているマシンではなく、データベースであると確信していますか?適切にバッチ処理していて、ドキュメントごとに更新を行っていないことを確認しますか?

于 2012-09-27T10:22:17.340 に答える