mongodb-从非常大的集合中删除重复文档的超时(300M)
我有一个3亿的大收藏&我用下面的方法删除重复的文档mongodb-从非常大的集合中删除重复文档的超时(300M),mongodb,mongodb-query,robo3t,Mongodb,Mongodb Query,Robo3t,我有一个3亿的大收藏&我用下面的方法删除重复的文档 db.coll.distinct(index}).forEach(function(index) { db.coll.aggregate([ { $match: { id: index } }, { $group: { _id: { id: "$id", key: "$key" }, date: { $first: "$date"
db.coll.distinct(index}).forEach(function(index) {
db.coll.aggregate([
{ $match: { id: index } },
{ $group: {
_id: { id: "$id", key: "$key" },
date: { $first: "$date" }
}
}
]).forEach(function(doc){
db.coll.remove({
'id': doc._id.id,
'key': doc._id.key,
'date': { $lt : doc.date }
})
})
})
大约有20000份重复文档&每份文档都有2-10份文档的副本。我保留最新文档&删除所有旧文档一次,因此要删除的文档总数约为150k
上面的方法正在工作,但是删除它需要很多时间,这会导致超时
删除9k文档本身需要1-2小时有没有有效的方法删除重复的文档?
PS:id、键和日期没有索引