समस्या यह है कि यहाँ:
"sp": {
$split: [
"$sourceList.source",
"\n"
],
$split: [
"$sourceList.source",
" "
]
}
केवल दूसरा $split
MongoDB द्वारा निष्पादित किया जाता है और यह hello\nworld
returns लौटाता है एक स्ट्रिंग के रूप में। ऐसा कोई "कैस्केड" सिंटैक्स नहीं है, क्योंकि यह बस वही JSON कुंजी है $split
तो आखिरी जीत।
इसे ठीक करने के लिए आप $reduce $split
apply लागू करने के लिए \n
. द्वारा विभाजित की एक सरणी पर व्हाइटस्पेस द्वारा मान:
{
$project: {
"sp": {
$reduce: {
input: { $split: [ "$sourceList.source", "\n" ] },
initialValue: [],
in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
}
}
}
}