La documentation indique "Actuellement, la valeur de retour d'une fonction reduce ne peut pas être un tableau (il s'agit généralement d'un objet ou d'un nombre)."
Créez donc un objet à la place et enveloppez votre tableau dedans. Assurez-vous également que la sortie de reduce est identique au type d'entrée, vous devrez donc émettre une valeur similaire dans l'opération de mappage.
MAIS ... pourquoi utiliser Map-Reduce pour faire cela ? Si vous émettez la valeur _id, il n'y a rien à réduire car chaque clé sera unique. Pourquoi ne pas simplement parcourir la collection en copiant les valeurs et en mettant à jour chaque enregistrement un par un ?