Masalahnya ada di sini:
"sp": {
$split: [
"$sourceList.source",
"\n"
],
$split: [
"$sourceList.source",
" "
]
}
hanya $split
second kedua dieksekusi oleh MongoDB dan mengembalikan hello\nworld
sebagai satu tali. Tidak ada sintaks "cascade" seperti itu, karena itu hanya kunci JSON yang sama $split
jadi kemenangan terakhir.
Untuk memperbaikinya, Anda dapat menggunakan $reduce untuk menerapkan $split
dengan spasi pada array yang dibagi dengan \n
nilai:
{
$project: {
"sp": {
$reduce: {
input: { $split: [ "$sourceList.source", "\n" ] },
initialValue: [],
in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
}
}
}
}