2017-12-12 2 views
0

나는이 컬렉션이 있습니다 newPrice 내 경우는 것MongoDB를 그룹 포함 된 개체

{ 
"_id" : "1", 
"productGroup" : "G1", 
"product" : { 
    "oldPrice" : 1.22, 
    "newPrice" : 1.33 
    } 
}, 
{ 
"_id" : "2", 
"productGroup" : "G1", 
"product" : { 
    "oldPrice" : 1.12, 
    "newPrice" : 1.23 
    } 
} 

내가 productGroup에 의해 그룹화 할 만 제품을 가진 분을 유지를

{ 
"_id" : "G1", 
"product" : { 
    "oldPrice" : 1.12, 
    "newPrice" : 1.23 
    } 
} 

이렇게하면 전체 제품 포함 개체가 필요한 동안 newPrice 속성 만 포함됩니다.

db.myColl.aggregate([{ 
    "$group" : { 
     _id : "$productGroup", 
     product : { "$min" : "$product.newPrice"} 
    } 
}]) 

어떻게해야할까요?

답변

1

집계 파이프 라인에서 각 그룹에서 최소 새 가격을 얻는 데 필요한 결과를 얻으려면 $sort$first을 사용하십시오.

db.myColl.aggregate([ 
    {$sort: {"product.newPrice":1}}, 
    {$group: {_id:"$productGroup", product:{$first:"$product"}}} 
]); 
+0

나는 그것을 놓쳤다. 고마워! – Monta