El problema es que aquí:
"sp": {
$split: [
"$sourceList.source",
"\n"
],
$split: [
"$sourceList.source",
" "
]
}
solo el segundo $split
es ejecutado por MongoDB y devuelve hello\nworld
como una cuerda. No existe tal sintaxis de "cascada", ya que es simplemente la misma clave JSON $split
así que el último gana.
Para solucionarlo, puede usar $reduce para aplicar $split
por espacios en blanco en una matriz de división por \n
valores:
{
$project: {
"sp": {
$reduce: {
input: { $split: [ "$sourceList.source", "\n" ] },
initialValue: [],
in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
}
}
}
}