工作

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")
去重前
去重后
上一篇下一篇

猜你喜欢

热点阅读