2017-12-07 10 views
0

나의 현재 MongoDB를 집계 파이프 라인 출력은MongoDB를 집계 파이프 라인에서 고유 한 값을하는 방법

[ 
    { 
     "CustomerID":"E001", 
     "CustomerName":"Suresh", 
     "CustomerPhone":"919889902----",   
    }, 
    { 
     "CustomerID":"E001", 
     "CustomerName":"Suresh", 
     "CustomerPhone":"919889902----",   
    }, 
    { 
     "CustomerID":"E002", 
     "CustomerName":"Ramesh", 
     "CustomerPhone":"919889902----",   
    }, 
    { 
     "CustomerID":"E003", 
     "CustomerName":"Kishore", 
     "CustomerPhone":"919889902----",   
    }, 
    { 
     "CustomerID":"E002", 
     "CustomerName":"Ramesh", 
     "CustomerPhone":"919889902----",   
    }, 
    { 
     "CustomerID":"E001", 
     "CustomerName":"Suresh", 
     "CustomerPhone":"919889902----",   
    } 
]; 

실제 응답이 CustomerID를 모르겠어요

[ 
    { 
     "CustomerID":"E001", 
     "CustomerName":"Suresh", 
     "CustomerPhone":"919889902----",   
    }, 
    { 
     "CustomerID":"E002", 
     "CustomerName":"Ramesh", 
     "CustomerPhone":"919889902----",   
    }, 
    { 
     "CustomerID":"E003", 
     "CustomerName":"Kishore", 
     "CustomerPhone":"919889902----",   
    } 
]; 

어떤 연산자에 따라 고유해야합니다입니다 집계 파이프 라인에서 고유 한 값을 가져 오는 데 사용합니다. 나는 $ 프로젝트를 사용하고

, 응답의 투사와에 대한 $ 일종의 $ 원하는 값을 기준으로 그룹이

답변

1

건너 뛰고 $ 제한 매김을 위해 :

db.collection.aggregate([ 
    { 
    $group:{ 
     _id: "$CustomerID", 
     CustomerId: {$first:"$CustomerID"}, 
     CustomerName: {$first: "$CustomerName"}, 
     CustomerPhone: {$first: "$CustomerPhone"} 
    } 
    } 
]); 

나는 이름과 전화가 있다고 가정 동일한 고객 ID에 대해 동일합니다. 그렇지 않으면 $ firstT를 $ addToSet으로 바꾸어 모든 이름과 전화 번호를 얻으십시오.

+0

정말 많이 감사합니다. 정말 도움이됩니다. –