Database

[{"_id":"32013R0345","name_lang":{"de":"Verordnung (EU) Nr. 345/2013 des Europäischen Parlaments und des Rates vom 17. April 2013 über Europäische Risikokapitalfonds Text von Bedeutung für den EWR","en":"Regulation (EU) No 345/2013 of the European Parliament and of the Council of 17 April 2013 on European venture capital funds Text with EEA relevance","fr":"Règlement (UE) n ° 345/2013 du Parlement européen et du Conseil du 17 avril 2013 relatif aux fonds de capital-risque européens Texte présentant de l'intérêt pour l'EEE"},"proposedAmendments":[{"id_doc":"52016PC0461","name_lang":{"de":"Vorschlag für eine VERORDNUNG DES EUROPÄISCHEN PARLAMENTS UND DES RATES zur Änderung der Verordnung (EU) Nr. 345/2013 über Europäische Risikokapitalfonds und der Verordnung (EU) Nr. 346/2013 über Europäische Fonds für soziales Unternehmertum","en":"Proposal for a REGULATION OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL amending Regulation (EU) No 345/2013 on European venture capital funds and Regulation (EU) No 346/2013 on European social entrepreneurship funds","fr":"Proposition de RÈGLEMENT DU PARLEMENT EUROPÉEN ET DU CONSEIL modifiant le règlement (UE) nº 345/2013 relatif aux fonds de capital-risque européens et le règlement (UE) nº 346/2013 relatif aux fonds d'entrepreneuriat social européens"}},{"id_doc":"52018PC0110","name_lang":{"de":"Vorschlag für eine VERORDNUNG DES EUROPÄISCHEN PARLAMENTS UND DES RATES zur Erleichterung des grenzüberschreitenden Vertriebs von Investmentfonds und zur Änderung der Verordnungen (EU) Nr. 345/2013 und (EU) Nr. 346/2013","en":"Proposal for a REGULATION OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL on facilitating cross-border distribution of collective investment funds and amending Regulations (EU) No 345/2013 and (EU) No 346/2013","fr":"Proposition de RÈGLEMENT DU PARLEMENT EUROPÉEN ET DU CONSEIL visant à faciliter la distribution transfrontière des fonds communs de placement et modifiant les règlements (UE) nº 345/2013 et (UE) nº 346/2013"}},{"id_doc":"52021PC0725","name_lang":{"en":"Proposal for a REGULATION OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL amending certain Regulations as regards the establishment and functioning of the European single access point"}}]}]

Query

db.collection.aggregate([{$match:{_id:"32013R0345"}},/** convert to { k: , v: } arrays*/{$set:{languages:{$map:{input:{$objectToArray:"$name_lang"},in:"$$this.k"}},proposedAmendments:{$map:{input:"$proposedAmendments",as:"amendment",in:{$mergeObjects:["$$amendment",{en:"$$amendment.name_lang.en"},{name_lang:{$objectToArray:"$$amendment.name_lang"}}]}}}}},/** replace missing languages by English*/{$set:{"proposedAmendments":{$map:{input:"$proposedAmendments",as:"amendment",in:{$mergeObjects:["$$amendment",{name_lang:{$map:{input:"$languages",as:"l",in:{$ifNull:[{$first:{$filter:{input:"$$amendment.name_lang",as:"lang",cond:{$eq:["$$lang.k","$$l"]}}}},{k:"$$l",v:"$$amendment.en"}]}}}}]}}}}},{$unset:["proposedAmendments.en","languages"]},/** convert back from { k: , v: } arrays*/{$set:{"proposedAmendments":{$map:{input:"$proposedAmendments",as:"amendment",in:{$mergeObjects:["$$amendment",{name_lang:{$arrayToObject:"$$amendment.name_lang"}}]}}}}}])

Result