通过键字段在MongoDB集合中查找所有重复的文档

编程入门 行业动态 更新时间:2024-10-27 07:29:51
本文介绍了通过键字段在MongoDB集合中查找所有重复的文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 假设我有一些包含一些文档的集合。

{_id:ObjectId(4f127fa55e7242718200002d),id:1,name foo} {_id:ObjectId(4f127fa55e7242718200002d),id:2,name:bar} {_id:ObjectId(4f127fa55e7242718200002d id:3,name:baz} {_id:ObjectId(4f127fa55e7242718200002d),id:4,name:foo} { _id:ObjectId(4f127fa55e7242718200002d),id:5,name:bar} {_id:ObjectId(4f127fa55e7242718200002d),id bar}

我想通过名称字段查找此集合中的所有重复条目。例如。 foo出现两次,bar出现3次。

解决方案

注意:这个解决方案是最容易理解的,但不是最好的。

您可以使用 mapReduce ,以了解文档包含某个字段的次数:

var map = function(){ if(this.name){ emit(this.name,1); } } var reduce = function(key,values){ return Array.sum(values); } var res = db.collection.mapReduce(map,reduce,{out:{inline:1}}); db [res.result] .find({value:{$ gt:1}})。sort({value:-1});

Suppose I have a collection with some set of documents. something like this.

{ "_id" : ObjectId("4f127fa55e7242718200002d"), "id":1, "name" : "foo"} { "_id" : ObjectId("4f127fa55e7242718200002d"), "id":2, "name" : "bar"} { "_id" : ObjectId("4f127fa55e7242718200002d"), "id":3, "name" : "baz"} { "_id" : ObjectId("4f127fa55e7242718200002d"), "id":4, "name" : "foo"} { "_id" : ObjectId("4f127fa55e7242718200002d"), "id":5, "name" : "bar"} { "_id" : ObjectId("4f127fa55e7242718200002d"), "id":6, "name" : "bar"}

I want to find all the duplicated entries in this collection by the "name" field. E.g. "foo" appears twice and "bar" appears 3 times.

解决方案

Note: this solution is the easiest to understand, but not the best.

You can use mapReduce to find out how many times a document contains a certain field:

var map = function(){ if(this.name) { emit(this.name, 1); } } var reduce = function(key, values){ return Array.sum(values); } var res = db.collection.mapReduce(map, reduce, {out:{ inline : 1}}); db[res.result].find({value: {$gt: 1}}).sort({value: -1});

更多推荐

通过键字段在MongoDB集合中查找所有重复的文档

本文发布于:2023-11-29 22:12:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1647777.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字段   文档   MongoDB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!