您的位置:首页 > 数据库 > Mongodb

mongodb的分组查询和处理

2017-06-18 23:25 260 查看
//删除synonymsList表中name+latin+status+sysName重复数据

db.synonymsList.aggregate([

      {

        $group:{

              _id: {name: "$name",latin:"$latin",status:"$status",sysName:"species2000"},

              count: {$sum: 1},//取得总数

              dups: {$addToSet: '$_id'}//暂存_id到set

        }

      },{

        $match:{count:{$gt:1}}//只找出大于1的重复数据

      }

],{

      allowDiskUse:true//因为数据超过16M,得使用硬盘缓存

  }).forEach(function(doc){

    doc.dups.shift();//将重复数据的任一条先从set中去掉,作为保留

    db.synonymsList.remove({_id: {$in: doc.dups}});//移除掉剩下的重复数据

})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: