[MONGODB] MongoDB의에서 중복 레코드 찾기
MONGODBMongoDB의에서 중복 레코드 찾기
어떻게 몽고 컬렉션에서 중복 필드를 찾을 것입니다.
나는 "이름"필드의 중복이 있는지 확인하고 싶습니다.
{
"name" : "ksqn291",
"__v" : 0,
"_id" : ObjectId("540f346c3e7fc1054ffa7086"),
"channel" : "Sales"
}
많은 감사합니다!
해결법
-
==============================
1.이름을 사용하여 집계 카운트> 1 이름을 가져올 수 :
이름을 사용하여 집계 카운트> 1 이름을 가져올 수 :
db.collection.aggregate( {"$group" : { "_id": "$name", "count": { "$sum": 1 } } }, {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, {"$project": {"name" : "$_id", "_id" : 0} } )
적어도 중복 가장하여 결과를 정렬하려면 :
db.collection.aggregate( {"$group" : { "_id": "$name", "count": { "$sum": 1 } } }, {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, {"$sort": {"count" : -1} }, {"$project": {"name" : "$_id", "_id" : 0} } )
"$의 COLUMN_NAME"로 변경 "$ 이름" "이름"이 아닌 다른 열 이름을 사용하려면
-
==============================
2.다음과 같은 집계 파이프 라인을 사용하여 중복 된 이름의 목록을 찾을 수 있습니다 :
다음과 같은 집계 파이프 라인을 사용하여 중복 된 이름의 목록을 찾을 수 있습니다 :
코드:
db.collection.aggregate([ {$group:{"_id":"$name","name":{$first:"$name"},"count":{$sum:1}}}, {$match:{"count":{$gt:1}}}, {$project:{"name":1,"_id":0}}, {$group:{"_id":null,"duplicateNames":{$push:"$name"}}}, {$project:{"_id":0,"duplicateNames":1}} ])
O / P :
{ "duplicateNames" : [ "ksqn291", "ksqn29123213Test" ] }
-
==============================
3.응답 anhic는 큰 데이터베이스를 가지고 속성 이름은 문서의 일부에있는 경우 매우 비효율적 일 수있다했다.
응답 anhic는 큰 데이터베이스를 가지고 속성 이름은 문서의 일부에있는 경우 매우 비효율적 일 수있다했다.
효율성을 개선하기 위해 당신은 집계에 $ 일치를 추가 할 수 있습니다.
db.collection.aggregate( {"$match": {"name" :{ "$ne" : null } } }, {"$group" : {"_id": "$name", "count": { "$sum": 1 } } }, {"$match": {"count" : {"$gt": 1} } }, {"$project": {"name" : "$_id", "_id" : 0} } )
-
==============================
4.
db.collectionName.aggregate([ { $group:{ _id:{Name:"$name"}, uniqueId:{$addToSet:"$_id"}, count:{"$sum":1} } }, { $match:{ duplicate:{"$gt":1} } } ]);
첫 번째 그룹 쿼리 필드에 따라 그룹.
그런 다음 우리는 고유 ID를 확인하고 카운트가 큰 그 일이 $ 일치의 요청에 의한 핸들이 될 것입니다 수 있도록 필드가 전체 컬렉션에서 중복 된 후 다음 1 인 경우를 계산합니다.
from https://stackoverflow.com/questions/26984799/find-duplicate-records-in-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 몽구스 삭제 (풀) 배열 내의 문서는 OBJECTID 작동하지 않는다 (0) | 2019.12.16 |
---|---|
[MONGODB] MongoDB를 실행하고 있습니까? (0) | 2019.12.16 |
[MONGODB] 몽구스 스키마 생성 (0) | 2019.12.16 |
[MONGODB] 우분투에 MongoDB를 로그에서 서비스, 아무것도로 시작되지 않습니다 (0) | 2019.12.16 |
[MONGODB] 어떻게 몽구스에 정렬하려면? (0) | 2019.12.16 |