$group का इस्तेमाल करें सभी दस्तावेज़ों से एक सरणी प्राप्त करने के लिए और फिर $reduceए> $concat के साथ एक स्ट्रिंग पाने के लिए:
db.col.aggregate([
{
$group: {
_id: null,
text: { $push: "$text" }
}
},
{
$project: {
text: {
$reduce: {
input: "$text",
initialValue: "",
in: {
$cond: [ { "$eq": [ "$$value", "" ] }, "$$this", { $concat: [ "$$value", " ", "$$this" ] } ]
}
}
}
}
}
])
$group
. के बाद आपको एकल दस्तावेज़ मिलेगा जिसमें सभी text
. की एक सरणी होगी मूल्य। फिर $reduce
सरणी को "स्कैन" करता है और राज्य को जोड़ता है ($$value
) वर्तमान में संसाधित वस्तु के साथ। पहले आइटम के लिए स्थिति एक खाली स्ट्रिंग होगी इसलिए मैं उपयोग कर रहा हूँ $cond
शुरुआत में खाली जगह से बचने के लिए।