mongoose删除重复的文档,但不删除第一个

时间:2016-11-29 19:28:26

标签: javascript node.js mongodb mongoose

我使用findOneAndRemove删除重复项,因为我知道不超过2个文档具有相同的“名称”值。这将删除具有相同“名称”值的doc的第一个实例。现在我不想删除第一个实例。相反,我想删除所有其他的。因此,如果有3个文档具有{name:“/ face.com”},则应该只保留添加的第一个文档并删除其他文档。

Comps.find({}).lean()
    .then(function(comps){
        findDuplicates.getArrayOfNames(comps);
        var dups = findDuplicates.checkForDuplicates();
        //dups is an array of names. It contains a list like ["/face.com", "/example.com"]. those are the ones that are duplicates.
        console.log("DUPS::", dups)

        dups.forEach(function(e){
            var query = {name : e}
            Comps.findOneAndRemove(query, function(err, removed){
                if(err) console.log(err);
                console.log("removed: ", removed)
            })
        })
        console.log("length: ",  comps.length);
    })
    .catch(function(err){
        console.log("ERR",err)
    })

0 个答案:

没有答案