MongoDB distinct() 指定字段去重
2019-05-28 本文已影响0人
沧海2122537190
db.collection.distinct(field, query, options)
获取某个字段的唯一值,仅可对单一字段去重。
若对多字段去重,可使用group分组操作
1.field为需要去重的字段,为必须字段。
无条件排重
db.getCollection("表名").distinct("字段名");
2.query为去重的筛选条件,为可选字段。
有条件排重
db.getCollection("表名").distinct('字段名',{筛选条件})
3.options 为其他选项一般应用较少
db.getCollection("表名").distinct('字段名',{筛选条件},{
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}})
去除重复的表名
db.collection.distinct()
distinct 有去重上限
Error: distinct too big, 16mb cap
示例
1、在表xaaa中对article_location字段去重
db.getCollection("xaaa").distinct("article_location");
示例1
2、在表article_info中 对article_vendor字段去重,筛选条件为year字段不存在
db.getCollection("article_info").distinct('article_vendor',{"year": {"$exists":false}});
示例2
3、对数组字段去重
db.getCollection("distinct").distinct("language")
去重前内容
去重后内容
4、对嵌入字段去重
db.getCollection("distinct").distinct("article_numbers.vol")
去重前
去重后