MongoDB में सरणी तत्वों को स्ट्रिंग में जोड़ना: $reduce + $concat
सरणी के तत्वों को एकल स्ट्रिंग में जोड़ने और अन्य फ़ील्ड्स के साथ संयोजित करने के लिए, $project में $reduce (सरणी→स्ट्रिंग) और फिर $concat का उपयोग करें।
नमूना डेटा
> db.demo359.insertOne({
Name1: "Chris", Name2: "David", Subjects: ["MySQL", "MongoDB", "Java"]
});
{ "acknowledged": true, "insertedId": ObjectId("5e5694cdf8647eb59e5620d0") }
एग्रीगेशन: Name1 + Subjects को स्पेस से जोड़ना
> db.demo359.aggregate([
{$project: {
values: {$reduce: {input: "$Subjects", initialValue: "", in: {$concat: ["$$value", " ", "$$this"]}}},
Name1: 1
}},
{$project: {'ConcatResult': {$concat: ["$Name1", "$values"]}}}
]);
परिणाम
{ "ConcatResult": "Chris MySQL MongoDB Java" }
पहला $project: $reduce सरणी पर पुनरावृत्त करता है, प्रत्येक तत्व को स्पेस के साथ जोड़ता है। दूसरा $project: Name1 को परिणाम के साथ जोड़ता है। नोट: MongoDB 4.0+ में $reduce के बजाय सरल $join (एग्रीगेशन में नहीं, बल्कि $arrayToObject संदर्भ में) या सीधे $concat में सरणी पास नहीं कर सकते; $reduce मानक तरीका है।