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

MongoDB एग्रीगेशन मेथड में पूर्णांक सरणी को कैसे जोड़ें?

MongoDB एग्रीगेशन में पूर्णांक सरणी को एकल स्ट्रिंग में जोड़ने के लिए (उदाहरण के लिए, विभाजक के साथ), $reduce के साथ $concat और $toString का उपयोग करें।

उदाहरण: पूर्णांक सरणी वाला दस्तावेज़

> db.demo377.insertOne({"ListOfIds":[1001,1002,1003,1004,1005,1006,1007]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5a73462ae06a1609a00b0e") }

दस्तावेज़ देखना

> db.demo377.find().pretty();

आउटपुट: सात पूर्णांकों वाली सरणी।

एग्रीगेशन: "++" विभाजक के साथ जोड़ें

> db.demo377.aggregate([
    { "$project": {
        "ListOfIds": {
            "$let": {
                "vars": {
                    "key": {
                        "$reduce": {
                            "input": "$ListOfIds",
                            "initialValue": "",
                            "in": { "$concat": [ "$$value", "++", { "$toString": "$$this" } ] }
                        }
                    }
                },
                "in": { "$substrCP": [ "$$key", 2, { "$strLenCP": "$$key" } ] }
            }
        }
    }}
]);

परिणाम

{ "_id" : ObjectId("5e5a73462ae06a1609a00b0e"), "ListOfIds" : "1001++1002++1003++1004++1005++1006++1007" }

चरण व्याख्या

  1. $reduce: सरणी पर पुनरावृत्त करता है, एक स्ट्रिंग संचय करता है: प्रत्येक पूर्णांक के लिए ++ + स्ट्रिंग(पूर्णांक) जोड़ता है।
  2. $let: संचित स्ट्रिंग को key में बांधता है।
  3. $substrCP: अग्रणी "++" हटाता है (स्थिति 2 से शुरू, लंबाई शेष)।

सरल विकल्प (MongoDB 4.4+): $reduce के साथ $concat सीधे

MongoDB 4.4+ $reduce में स्ट्रिंग संचय का समर्थन करता है बिना $let/$substr ट्रिक के:

> db.demo377.aggregate([
    { $project: {
        ListOfIds: {
            $reduce: {
                input: "$ListOfIds",
                initialValue: "",
                in: { $cond: [ { $eq: [ "$$value", "" ] }, { $toString: "$$this" }, { $concat: [ "$$value", "++", { $toString: "$$this" } ] } ] }
            }
        }
    }}
]);

नोट

  • $concat स्ट्रिंग आर्गुमेंट्स की आवश्यकता है; $toString पूर्णांकों को परिवर्तित करता है।
  • बहुत बड़ी सरणी के लिए, 16MB BSON दस्तावेज़ आकार सीमा पर विचार करें।
  1. - क्या MongoDB में ऑब्जेक्ट्स के ऐरे को खोज सकते हैं?

    हां, MongoDB में ऑब्जेक्ट्स के ऐरे को खोजने के लिए aggregate() में $unwind का उपयोग करें। मिलान के लिए $match का उपयोग करें। नमूना डेटा बनाना db.demo623.insertOne( { _id:1, details:[ { Name:Chris }, { DueDate:new ISODate(2020-01-10) }, { CountryName:US } ] } ); दस्तावेज़ देखना

  1. - MongoDB Array में Element Remove करना

    Element remove करने के लिए update में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना db.demo541.insertOne({software:{services:[gmail,facebook,yahoo]}}); { acknowledged : true, insertedId : ObjectId(

  1. - MongoDB एग्रीगेशन: ऐरे के सबसेट एलिमेंट्स को जोड़ें

    ऐरे के सबसेट एलिमेंट्स को एक साथ जोड़ने के लिए, $first के साथ $sum का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo610.insertOne({Values:[10,20,30,40,50]}); { acknowledged : true, insertedId : ObjectId(5e9747b8f57d0dc0b182d62e) } find() मेथड की मदद से कलेक्शन के सभी दस्तावेज