mongoコレクション内の潜在的に何百万ものドキュメント間のフィールドを比較したいと考えています。フィールドは事前に決定され、各フィールドに重みが与えられます。これらの重みは、「好きな」ドキュメントの提案を表すドキュメントペアを返すために使用されます。たとえば、2つのドキュメントが比較されていて、両方が 'first_name'フィールドに同じ値を持つ場合、ウェイトテーブルが参照され、ペアのスコアにそのウェイトが追加されます。 2つのフィールドの間で別のフィールドが同じ場合、スコアはより高い類似性を反映するように更新されます。MongoDB内のドキュメントの比較
私は現在、最初の結果セットを反復処理し、結果セットを通過し、各ドキュメントを最初のイテレータがある(非常に非効率的な)ドキュメントと比較する埋め込み反復処理を行っています。これは現在、カーソルを介して要素をつかむので、phpによってすべて行われます。
私はO(n^2)の複雑さで今働いているので、MapReduceの実装(実際には適用されないようです)、カーソルの操作、プロセスを単純化するために思い描くことができるものは何でも(これまでのところ、最初のイテレータでカバーされていたドキュメントはスキップしています)。
私は設定もかなり似ていましたが、これを維持するために追加のコレクションを作成することを避けたいと考えていましたが、これは私が行かなければならないルートにもっと似ています。入力いただきありがとうございます。 – Ghjnut