Използвайте $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
за да избегнете празно пространство в началото.