Mongo インスタンスに約 700000 個のドキュメントを保存しました。2GBのVPSで動作するため、究極の速度は期待できません. 私はNodeJSとMongooseを使って仕事をしています。
ドキュメントは次のような形式です。
- 第 1 レベルの鍵
- 第 1 レベルの鍵
- 2 レベル キー A
- 3段階キーA
- 2 レベル キー B
- 3 レベル キー 1
- 4レベルキーA
- 4レベルキーB
- 4 レベル キー C
- ...
- 3 レベル キー 2
- 第 3 レベル キー 3
- ...
- 3 レベル キー 1
- 2 レベル キー A
avgObjSize は 3191 であるため、最大でも最小でもありません。基本的に短いテキストのリストです。
したがって、すべての第 3 レベル キーの第 4 レベル キー C にあるすべての値に対して特定の値を一致させる必要があります。注意が必要なのは、これらの一致値の XX% が第 4 レベルのキー C で見つかった場合にのみ、ドキュメントが返されることです。
すべてがマップ関数で発生し、前処理されたオブジェクトのみを出力するようにMapReduceを試しました. $all などの Mongo 独自の関数を使用してみました。
問題は、すべてがめちゃくちゃ遅いことです。つまり、1 秒あたり 500 ドキュメント未満です。コレクションは成長するだけなので、私の質問は、Mongo を適切に使用する方法が不足しているだけなのか、それともこのようなタスクで遅いのでしょうか? 以前の質問を読んだところ、Mongo の MR が遅いという問題がいくつかありましたが、これは遅くはありません。これはクローリングです。