您的位置:首页 > 娱乐 > 八卦 > 国家开发银行贷款学生在线系统_限制高消费可以去环球影城吗_宣传软文怎么写_网站seo李守洪排名大师

国家开发银行贷款学生在线系统_限制高消费可以去环球影城吗_宣传软文怎么写_网站seo李守洪排名大师

2024/10/6 4:12:37 来源:https://blog.csdn.net/m0_58872140/article/details/142501822  浏览:    关键词:国家开发银行贷款学生在线系统_限制高消费可以去环球影城吗_宣传软文怎么写_网站seo李守洪排名大师
国家开发银行贷款学生在线系统_限制高消费可以去环球影城吗_宣传软文怎么写_网站seo李守洪排名大师

场景一:去重查询

在MongoDB的find查询里,可以直接使用distinct方法,但也有不少限制

在aggregate流式计算中,没有办法直接使用distinct方法,需要使用其他方法实现:

1、使用$group管道操作符,将需要去重关键字段进行分组聚合;

2、在$group中,使用$addToSet操作符将分组聚合后数据放入数组中;

3、使用$unwind操作符将数组进行拆分;

4、使用$project将所需要的数据进行展示,不需要的数据排除掉;

db.collection_name.aggregate([{$group: {_id: "$jzlsh",jzlsh: {$addToSet: "$jzlsh"}}},{$unwind: {path: "$jzlsh",preserveNullAndEmptyArrays: true}},{$project: {_id: 0,jzlsh: 1}}
])

场景二:去重计数

1、使用$group操作符将需要去重计数的关键字段或者多个字段,进行分组聚合

2、使用$addToSet操作符将分组聚合后的字段添加到数组中

3、再下一个管道中再使用一次$group,此时将_id设置为null,表示不再进行分组,因为上一个管道中已经去除了重复数据

4、使用$sum操作符进行计数操作

db.collection_name.aggregate([{$group: {_id: "$xid",xid: {$addToSet: "$xid"}}},{$group: {_id: null,count: {$sum: 1}}}
])

 场景三:只查询出有重复的数据

根据上面两个例子已经掌握的知识,进行整合即可查询出有重复的数据:

1、使用$group操作符将目标字段进行分组

2、使用$addToSet操作符将分组聚合后的字段添加到数组中

3、使用$sum操作符,获取每一组数据中的数据出现次数

4、使用$unwind操作符将$addToSet生成的数组进行拆分

5、在下一个管道中使用$match操作符对count进行条件判断count:{$gt:1}即可得出重复数据

db.collection_name.aggregate([{$group: {_id: "$jzlsh",jzlsh: {$addToSet: "$jzlsh"},count: {$sum: 1}}},{$unwind: {path: "$jzlsh",preserveNullAndEmptyArrays: true}},{$match: {count: {$gt: 1}}}
])

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com