2017-12-07 5 views
0

mongo 2.6を使用し、集約パイプラインの一部として、配列のすべてのエントリにオブジェクトを追加する必要があります。私はmongo 2.6を使用しているので、$ addFieldsを使用することはできません。Mongo集約プロジェクト配列全体にプロパティーを追加します

{ 
"_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

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

でもその本当に醜いかかわら:名前と番号のrray ...

答えて

0

は$マップすべき解決策を見つけました。

関連する問題