Database

[{"charges":226.09000000000003,"currentBalance":226.09000000000003,"insPortion":"","currentInsPortion":"","claim":"notSent","status":"unpaid","procedures":{"providerId":"9vfpjSraHzQFNTtN7","procedure":"21111","description":"One surface","category":"basicRestoration","surface":["m"],"providerName":"B Dentist","proceduresIndex":"0"},"patientId":"mE5vKveFArqFHhKmE","patientName":"Silvia Waterman","invoiceIndex":"0","proceduresIndex":"0"},{"charges":226.09000000000003,"currentBalance":226.09000000000003,"insPortion":"","currentInsPortion":"","claim":"notSent","status":"unpaid","procedures":{"providerId":"9vfpjSraHzQFNTtN7","procedure":"21112","fee":128.8,"description":"Two surfaces","category":"basicRestoration","surface":["m","d"],"providerName":"B Dentist","proceduresIndex":"1"},"patientId":"mE5vKveFArqFHhKmE","patientName":"Silvia Waterman","invoiceIndex":"0",},{"insPortion":"","currentInsPortion":"","claim":"notSent","status":"unpaid","procedures":{"providerId":"9vfpjSraHzQFNTtN7","serviceDate":"2019-08-01","phase":"1","status":"completed","procedure":"21111","description":"One surface","fee":"97.29","surface":["five"],"lab1":{"code":""},"lab2":{"code":""},"providerName":"B Dentist","proceduresIndex":"0"},"patientId":"mE5vKveFArqFHhKmE","patientName":"Silvia Waterman","invoiceIndex":"1",},{"insPortion":"","currentInsPortion":"","claim":"notSent","status":"unpaid","procedures":{"providerId":"9vfpjSraHzQFNTtN7","serviceDate":"2019-08-01","phase":"1","status":"completed","procedure":"21111","description":"One surface","fee":"97.29","surface":["five"],"lab1":{"code":""},"lab2":{"code":""},"providerName":"B Dentist","proceduresIndex":"1"},"patientId":"mE5vKveFArqFHhKmE","patientName":"Silvia Waterman","invoiceIndex":"1",},{"insPortion":"","currentInsPortion":"","claim":"notSent","status":"unpaid","procedures":{"providerId":"9vfpjSraHzQFNTtN7","serviceDate":"2019-08-01","phase":"1","status":"completed","procedure":"21111","description":"One surface","fee":"97.29","surface":["five"],"lab1":{"code":""},"lab2":{"code":""},"providerName":"B Dentist","proceduresIndex":"2"},"patientId":"mE5vKveFArqFHhKmE","patientName":"Silvia Waterman","invoiceIndex":"1",}]

Query

db.collection.aggregate([{$group:{_id:{invoice:"$invoiceIndex",procedures:"$procedures.proceduresIndex"},procedures:{$push:"$procedures"}}},])

Result