Il problema è che qui:
"sp": {
$split: [
"$sourceList.source",
"\n"
],
$split: [
"$sourceList.source",
" "
]
}
solo il secondo $split
viene eseguito da MongoDB e restituisce hello\nworld
come una stringa. Non esiste una tale sintassi "a cascata", poiché è semplicemente la stessa chiave JSON $split
quindi vince l'ultimo.
Per risolvere il problema puoi utilizzare $reduce per applicare $split
per spazio bianco su un array di diviso per \n
valori:
{
$project: {
"sp": {
$reduce: {
input: { $split: [ "$sourceList.source", "\n" ] },
initialValue: [],
in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
}
}
}
}