Database

[{"counter":"APPLE","fsgeneral":{"0":{"fye":"Mar-01","dilutedShares":{"value":10}},"1":{"fye":"Mar-02","dilutedShares":{"value":10}}},"balancesheet":{"0":{"fye":"Mar-01","shareholderFund":{"value":200},"test":{value:10}},"1":{"fye":"Mar-02","shareholderFund":{"value":400},"test":{value:5}}}}]

Query

db.collection.aggregate([{$project:{counter:1,output:{$arrayToObject:{$map:{input:{$objectToArray:"$balancesheet"},as:"a",in:{k:"$$a.k",v:{$mergeObjects:[{fye:"$$a.v.fye"},{$reduce:{input:{$objectToArray:"$fsgeneral"},initialValue:0,in:{$cond:[{$eq:["$$this.k","$$a.k"]},{bookvalue:{value:{$divide:["$$a.v.shareholderFund.value","$$this.v.dilutedShares.value"]}},bookvalue2:{value:{$multiply:["$$a.v.test.value","$$this.v.dilutedShares.value"]}}},"$$value"]}}}]}}}}}}}])

Result