我正在运行一个脚本来删除MongoDB中的重复项。这并不简单,因为每个集合中都有大量的重复数据(数百万)。
下面脚本中的重复项只是一个要删除的文档ID(我构建的)。
我观察到的奇怪行为是MongoDB shell有时会停止运行并暂停。我通过跟踪进程的CPU使用情况注意到这一点,它会不时突然降至0。
如果我然后在shell中按ENTER键,它将恢复。 我不知道是什么导致了这个,但如果我想自动执行此操作,这对我来说是一个问题。有谁知道这背后可能是什么?
谢谢!
var i,j,tempDuplicates,chunk = 1000;
for (i=0,j=duplicates.length; i<j; i+=chunk) {
print( "Deleted " + i.toString() + " records from "+ collname)
tempDuplicates = duplicates.slice(i,i+chunk);
// Flatten the array using reduce js function
tempDuplicates = tempDuplicates.reduce(function(a,b){ return a.concat(b); });
// Remove elements in tempDuplicates
db[collname].remove({_id:{$in:tempDuplicates}})
}