600.000個のドキュメントを含む膨大なコレクションがあります。不幸にも、私は見つけたいと思う重複があります。 これらの重複は、最初の文字の大文字/小文字のみが異なります。MongoDB:DB内のすべての大文字/小文字の重複を見つける
{ key: 'Find me' },
{ key: 'find me' },
{ key: 'Don't find me }, // just one document for this string
{ key: 'don't find me either } // just one document for this string
ここではすべての重複を取得したいと思います。つまり、既存の大文字と小文字の文字列があります。
600kはあまり好きではありません。これらの文字列が長すぎない(すなわち、本ではない)と仮定すると、それらの文字列はすべてメモリに収まる必要があります。 1文書につき平均80文字(1行〜端末数)で、わずか48MBです。したがって、私はデータベースクライアントにそれらのすべてをロードし、メモリ内で処理することをお勧めします。これはMongo(DB側の関数)でも行うことができますが、データベース全体をブロックします。また、map/reduceを試すこともできますが、もっと複雑な解決策に見えます。私はあなたが持っているすべての選択肢だと思う。 – freakish
すべてのエントリが実際に小さい(avrg 10〜20文字)ので、正常なjavascriptの質問になり、配列から重複を取り除くことができます。 – user3142695