zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

mongodb去除重复的数据

MongoDB数据 重复 去除
2023-09-14 09:04:42 时间
今天出现了一个新的需求,有个部门需要拿到mongodb中的数据,要求去掉其中一个字段内容相同的数据。 虽然mongodb中有distinct来去重,但是和mysql的distinct不同的是,mysql中能用distinct * 返回整条记录的信息,而mongodb的distinct我却只是返回去重的那个字段的数据(或许mongodb也可以返
今天出现了一个新的需求,有个部门需要拿到mongodb中的数据,要求去掉其中一个字段内容相同的数据。 虽然mongodb中有distinct来去重,但是和mysql的distinct不同的是,mysql中能用distinct * 返回整条记录的信息,而mongodb的distinct我却只是返回去重的那个字段的数据(或许mongodb也可以返回整条,但是我不知道)。 mysql中的distinct返回完整记录:

上边的内容并不是我想看到的结果,因此便想了一个办法,去掉重复的数据后重新保存不重复的数据到某张表中,以下是个例子: 1、进入mongo shell:
./mongo
2、切换到需要去重的集合所在的数据库:
use admin
3、在mongo shell中编写并执行js代码:
var res=db.test.find();

while(res.hasNext()){

 var res1=db.test.find(); 

 var re=res.next();

 while(res1.hasNext()){

 var re1=res1.next();

 if(re.age==re1.age){ 

 db.test.remove({"age":re1.age}); 

 db.test.insert(re); 

}


如上图,第一次执行循环的时候由于res没有定义而失败,第二次定义了res后,执行成功。那么在新的集合中,就完全没有该字段重复的数据了(这里只是测试以下,因此就用了同一个集合)。

SpringBoot2.x使用MongoDB的Rest端点访问数据 在之前项目中我们想要读取`MongoDB`内的内容需要使用`MongoDBTemplate`来完成数据的`CRUD`,那如果我们想要通过`RestController`的形式获取`MongoDB`内的数据就更麻烦了,还需要自行去创建对应的控制器,然后使用`MongoDBTemplate`从`MongoDB`内读取出数据后返回给前端。
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun