冗長なデータを持つコレクションがあります。
サンプルデータ:
{
unique_index : "1"
other_field : "whatever1"
},
{
unique_index : "2"
other_field : "whatever2"
},
{
unique_index : "1"
other_field : "whatever1"
}
クエリを実行しました:(allowDiskUse:true
データが多いため使用する必要があります)
db.collection.aggregate([
{
$group: {
_id: "$unique_index",
count: { $sum: 1 }
}
},
{ $match: { count: { $gte: 2 } } }
], { allowDiskUse: true })
この出力が得られます:(たとえば)
{ "_id" : "1", "count" : 2 }
.
.
ここでの問題は、データを 1 つだけ保持したいということです。冗長データをすべて削除したい。100,000 件を超えるレコードなど、大量のデータがあることに注意してください。Ruby on Railsを使用しているため、mongodbまたはRoRで迅速かつ簡単なソリューションを探しています。