2017-12-07 2 views
0

mongo 2.6을 사용하고 집계 파이프 라인의 일부로 배열의 모든 항목에 개체를 추가해야합니다. mongo 2.6을 사용하기 때문에 $ addFields를 사용할 수 없습니다.Mongo Aggregation Project 배열에 모든 속성을 추가하십시오

:

{ 
"_id" : ObjectId("5a290637e4b08ddd7334e541"), 
"placeName" : "Caspeco Mobile Order", 
"created" : ISODate("2017-12-07T09:13:27.248Z"), 
"currency" : "SEK", 
"isCredit" : false, 
"costCenter" : { 
    "name" : "Test Restaurangen", 
    "number" : "800" 
}, 
"debitAccounts" : [ 
    { 
     "name" : "CASH", 
     "number" : "1915", 
     "amount" : 189.0 
    } 
], 
"creditAccounts" : [ 
    { 
     "name" : "Mat", 
     "number" : "3120", 
     "amount" : 168.749984741211 
    } 
], 
"taxAccounts" : [ 
    { 
     "name" : "Moms 12%", 
     "number" : "2621", 
     "amount" : 20.2500076293945 
    } 
], 
"credit" : false 

가}

그리고 집계에서 첫 단계로 내가 좋아하는 일을하고 모든 잠재적 creditAccounts

에 costCenter 개체를 추가해야합니다

내 데이터처럼 보인다

{$project: {'creditAccounts'{'costCentre':'$costCenter.name','costCentreAccount':'$costCenter.number','name':'$creditAccounts.name','number':'$creditAccounts.number','amount':'$creditAccounts.amount'}, document: '$$ROOT'}} 

aa를 생성 한 이후 Doent work 이름과 전화 번호의 rray ...

답변

0

은 $지도로 해결책을 찾았

creditAccounts:{$map:{input:'$creditAccounts', as:'creditAcccount', in : {name:'$$creditAcccount.name',number:'$$creditAcccount.name',amount:'$$creditAcccount.amount', costCentre:'$costCenter.name',costCentreAccount:'$costCenter.number'}}} 

심지어는 정말 추한하지만

.

관련 문제