Problemet er, at her:
"sp": {
$split: [
"$sourceList.source",
"\n"
],
$split: [
"$sourceList.source",
" "
]
}
kun den anden $split
bliver eksekveret af MongoDB, og det returnerer hello\nworld
som én streng. Der er ingen sådan "kaskade"-syntaks, da det simpelthen er den samme JSON-nøgle $split
så sidste vinder.
For at rette op på det kan du bruge $reduce for at anvende $split
med mellemrum på en række opdelt med \n
værdier:
{
$project: {
"sp": {
$reduce: {
input: { $split: [ "$sourceList.source", "\n" ] },
initialValue: [],
in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
}
}
}
}