O problema é que aqui:
"sp": {
$split: [
"$sourceList.source",
"\n"
],
$split: [
"$sourceList.source",
" "
]
}
apenas o segundo
$split
é executado pelo MongoDB e retorna hello\nworld
como uma corda. Não existe essa sintaxe "em cascata", pois é simplesmente a mesma chave JSON $split
então as últimas vitórias. Para corrigir isso, você pode usar $reduce para aplicar
$split
por espaço em branco em uma matriz de divisão por \n
valores:{
$project: {
"sp": {
$reduce: {
input: { $split: [ "$sourceList.source", "\n" ] },
initialValue: [],
in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
}
}
}
}
Mongo Playground