J'ai réussi à résoudre le problème après un peu plus de tâtonnements avec différentes étapes :
aggregate([
{
$unwind: "$SalesItems"
},
{
$lookup: {
from: "SalesItem",
localField: "SalesItems.SalesItemID",
foreignField: "ID",
as: "SalesItemDetails"
}
},
{
$group: {
_id: "$_id",
SalesItems: {
$push: {
SalesItemID: "$SalesItems.SalesItemID",
SalesItemDetails: "$SalesItemDetails"
}
}
}
}
])
Cela correspond exactement à ce que je cherchais.