mongodb 查重与去重

复制代码
-- 查询image重复记录
db.getCollection('image').aggregate([
    { $group: { _id : {imageId: '$imageId',time:'$time'}, count: { $sum : 1 } } },
    { $match: { count: { $gt : 1} } }
])

-- 删除image重复记录
db.getCollection('image').aggregate([
    {   $group: { 
            _id : {imageId:'$imageId'},
            count: { $sum : 1 },
            dups:{$addToSet:'$_id'}
        } 
    },
    { 
        $match: {
            count: { $gt : 1} 
        }
    }
]).forEach(function(doc){
    doc.dups.shift();
    db.image.remove({_id:{$in:doc.dups}});
})

--  查询face重复记录
db.getCollection('face').aggregate([
    { $group: { _id : {faceId: '$faceId',time:'$time',personId:'$personId'}, count: { $sum : 1 } } },
    { $match: { count: { $gt : 1} } }
])

-- 删除face重复记录
db.getCollection('face').aggregate([
    {   $group: { 
             _id : {faceId: '$faceId',time:'$time',personId:'$personId'},
            count: { $sum : 1 },
            dups:{$addToSet:'$_id'}
        } 
    },
    { 
        $match: {
            count: { $gt : 1} 
        }
    }
],
{allowDiskUse: true}
).forEach(function(doc){
    doc.dups.shift();
    db.face.remove({_id:{$in:doc.dups}});
})
复制代码

 

posted @   咔咔皮卡丘  阅读(273)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
点击右上角即可分享
微信分享提示