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

MongoDB एग्रीगेशन में विभिन्न प्रॉपर्टीज़ के मानों को सिंगल ऐरे में मर्ज करें

MongoDB में $setUnion का उपयोग करके फ़ील्ड्स को ऐरे में मर्ज करना

जब आपको एक ही दस्तावेज़ के अलग-अलग फ़ील्ड्स के मानों को एक सिंगल ऐरे में यूनिक मानों के साथ जोड़ना हो, तो $setUnion ऑपरेटर का उपयोग किया जाता है।

सैंपल डेटा बनाना

> db.demo244.insertOne({"Value1":10,"Value2":20});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4582e31627c0c63e7dba63") }
> db.demo244.insertOne({"Value1":20,"Value2":30});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4582f11627c0c63e7dba64") }

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

> db.demo244.find();

आउटपुट:

{ "_id" : ObjectId("5e4582e31627c0c63e7dba63"), "Value1" : 10, "Value2" : 20 }
{ "_id" : ObjectId("5e4582f11627c0c63e7dba64"), "Value1" : 20, "Value2" : 30 }

एग्रीगेशन पाइपलाइन: ग्रुप और प्रोजेक्ट

> db.demo244.aggregate([
    { "$group": {
        "_id": null,
        "v1": { "$addToSet": "$Value1" },
        "v2": { "$addToSet": "$Value2" }
    }},
    { "$project": {
        "AllValues": { "$setUnion": [ "$v1", "$v2" ] }
    }}
]);

आउटपुट:

{ "_id" : null, "AllValues" : [ 10, 20, 30 ] }

चरण-दर-चरण स्पष्टीकरण

  1. $group - सभी दस्तावेज़ों को सिंगल ग्रुप में जोड़ता है (_id: null)
  2. $addToSet - प्रत्येक फ़ील्ड के यूनिक मानों का ऐरे बनाता है (डुप्लिकेट हटाता है)
  3. $setUnion - दो ऐरे को मर्ज करके यूनिक मानों का सेट बनाता है
  4. $project - अंतिम आउटपुट फॉर्मेट निर्दिष्ट करता है

वैकल्पिक दृष्टिकोण

यदि दस्तावेज़ प्रति एक ही ऐरे चाहिए, तो $concatArrays + $reduce का उपयोग करें।

  1. - MongoDB में एग्रीगेशन का उपयोग करके सभी मानों को मैच करें

    MongoDB में सभी मानों को मैच करने के लिए, एग्रीगेशन में $match के साथ $and का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo574.insertOne({ details1: { details2: { dueDate: new ISODate(2020-01-10), Name: Chris, UserInformation: {

  1. - MongoDB में समान ID वाले दस्तावेज़ों के एलिमेंट्स को एग्रीगेट करना

    अलग-अलग दस्तावेज़ों में समान ID वाले एलिमेंट्स को ग्रुप करने के लिए MongoDB के $group एग्रीगेशन स्टेज का उपयोग करें। डेमो डेटा > db.demo602.insertOne({id:1,Name:Chris}); > db.demo602.insertOne({id:2,Name:David}); > db.demo602.insertOne({id:1,Name:Bob}); > db.demo602.insertOne({id:3,Name

  1. - MySQL में विभिन्न पंक्तियों से सूची को एक फ़ील्ड में कैसे लौटाएं

    समाधान GROUP_CONCAT() फंक्शन का उपयोग करके GROUP BY के साथ मानों को जोड़ें। उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2024 VALUES (MongoDB, Mike); क्वेरी FROM DemoTable2024 GROUP BY SubjectName; परिणाम +-------------+---------------------------+ | SubjectName | group_concat(Stude