Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB एग्रीगेशन में $reduce और $concat का उपयोग करके सरणी मानों को अन्य फ़ील्ड्स के साथ जोड़ना

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 मानक तरीका है।

  1. - MongoDB में सबडॉक्यूमेंट्स के ऐरे को कैसे क्वेरी करें?

    सबडॉक्यूमेंट्स के ऐरे को क्वेरी करने के लिए MongoDB में $unwind का उपयोग करें। नमूना डेटा बनाना (सबडॉक्यूमेंट्स ऐरे) db.demo499.insertOne({ details: [ { Name:MIT, Rank: 1, CountryName:US }, { Name:Stanford University, Rank: 2 }, { Name:University of California, Berkeley, Rank: 3 }

  1. - MongoDB में मानों की सरणी दिए जाने पर मिलते-जुलते दस्तावेज़ कैसे खोजें?

    विशिष्ट दस्तावेज़ों के लिए, MongoDB $in ऑपरेटर का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo511.insertOne({ListOfProject:[Library Management System,Hospital Management System]}); { acknowledged : true, insertedId : ObjectId(5e88473a987b6e0e9d18f585) } > db.demo511.insertOne(

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo736.insertOne( { _id: 101, details1: [ { details2: [ { details3: { Name: John } } ] } ] } ); { acknowledged : true, insertedId : 101 } > db.demo736.insertOne( { _id: 102,