Mongo にコレクションがあり、特定のキーに重複があり、1 つを除いてすべて削除する必要があります。Map Reduce ソリューションは、重複の 1 つを除いてすべてを削除する方法を明確にしていないようです。私はRubyを使用していますが、これをある程度効率的な方法で行うにはどうすればよいですか? 私の現在のソリューションは信じられないほど遅いです!
現在、重複キーの配列を繰り返し処理し、返された最初のドキュメントを削除するだけですが、これはキーごとに最大で 1 つの重複ドキュメントがあり、非常に遅い場合にのみ機能します。
dupes.each do |key|
$mongodb.collection("some_collection").remove($mongodb.collection("some_collection").find({key: key}).first)
end