Database
db={"tables":[{"tableName":"Items","rows":[{"label":"row 1 label here","items":["item1","item2","item3"]},{"label":"row 2 label here","items":["item4","item5","item6"]}]}],"items":[{"id":"item1","name":"Item name","code":"XXX-XXXX-XXXX","price":100},{"id":"item2","name":"Item name","code":"XXX-XXXX-XXXX","price":100},{"id":"item3","name":"Item name","code":"XXX-XXXX-XXXX","price":100},{"id":"item4","name":"Item name","code":"XXX-XXXX-XXXX","price":100},{"id":"item5","name":"Item name","code":"XXX-XXXX-XXXX","price":100},{"id":"item6","name":"Item name","code":"XXX-XXXX-XXXX","price":100}]}
Query
db.tables.aggregate([{"$unwind":"$rows"},{"$unwind":"$rows.items"},{"$lookup":{"from":"items","localField":"rows.items","foreignField":"id","as":"itemsLookup"}},{"$unwind":"$itemsLookup"},{"$set":{"rows":{"$mergeObjects":["$rows","$itemsLookup"]}}},{"$group":{"_id":{"_id":"$_id","label":"$rows.label"},"tableName":{"$first":"$tableName"},"rows":{"$push":"$rows"}}},{"$group":{"_id":"$_id._id","tableName":{"$first":"$tableName"},"rows":{"$push":{"label":"$_id.label","items":"$rows"}}}}])