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

MongoDB में विशिष्ट मान की अधिकतम घटनाओं वाले ऐरे वाला दस्तावेज़ खोजें

MongoDB एग्रीगेशन में ऐरे एलिमेंट्स की घटनाएं गिनना

किसी ऐरे में विशिष्ट मान की घटनाओं को गिनने और अधिकतम घटनाओं वाले दस्तावेज़ को खोजने के लिए $filter, $size, $group, $sort, और $limit का संयोजन उपयोग करें।

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

> db.countOccurrencesDemo.insertOne({"ListOfValues":[65,87,89,65,67,87,87,87]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06ef9325ddae1f53b621eb") }
> db.countOccurrencesDemo.insertOne({"ListOfValues":[102,65,87,65,89,65,89,65,89,65]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06efaa25ddae1f53b621ec") }

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

> db.countOccurrencesDemo.find();

आउटपुट:


एग्रीगेशन: मान 65 की घटनाएं गिनें और अधिकतम वाला दस्तावेज़ खोजें

> db.countOccurrencesDemo.aggregate([
    { "$project": {
        "ListOfValues": 1,
        "OccurencesValue": {
            "$size": {
                "$filter": {
                    "input": "$ListOfValues",
                    "as": "v",
                    "cond": { "$eq": [ "$$v", 65 ] }
                }
            }
        }
    }},
    { "$group": {
        "_id": "$OccurencesValue",
        "MyValues": { "$push": "$$ROOT" }
    }},
    { "$sort": { "_id": -1 } },
    { "$limit": 1 }
]);

आउटपुट:


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

  1. $project: प्रत्येक दस्तावेज़ के लिए 65 की गिनती गणना करता है ($filter + $size)
  2. $group: गिनती द्वारा ग्रुप करता है, पूरे दस्तावेज़ को $$ROOT के साथ पुश करता है
  3. $sort: गिनती (_id) द्वारा डिसेंडिंग सॉर्ट करता है
  4. $limit: 1: केवल शीर्ष ग्रुप (अधिकतम गिनती) लौटाता है

सरल विकल्प: केवल गिनती और दस्तावेज़


सामान्यीकृत संस्करण (किसी भी मान के लिए)

यह प्रत्येक दस्तावेज़ में प्रत्येक मान की गिनती देता है, फिर समग्र अधिकतम खोजता है।

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de

  1. - C++ में दिए गए सरणी से एक युग्म खोजें जिसका nCr मान अधिकतम हो

    अवधारणा दिए गए n धनात्मक पूर्णांकों की सरणी arr[] के संबंध में, सरणी से तत्व arr[i] और arr[j] निर्धारित करना है जैसे कि arr[i]Carr[j] अधिकतम संभव हो। एक से अधिक वैध युग्म होने पर, उनमें से किसी एक को प्रिंट करें। उदाहरण इनपुट arr[] = {4, 1, 2} आउटपुट 4 2 4C1 = 4, 4C2 = 6, 2C1 = 2 (4, 2) अधिकतम nCr

  1. - पायथन में दिए गए ऐरे से अधिकतम nCr मान वाला युग्म खोजें

    मान लीजिए हमारे पास n पूर्णांकों का एक ऐरे arr है। हमें ऐरे से arr[i] और arr[j] ढूंढने हैं जैसे कि arr[i]Carr[j] यथासंभव बड़ा हो। यदि एक से अधिक युग्म हैं, तो उनमें से कोई भी एक लौटाएं। इसलिए, यदि इनपुट [4, 1, 2] है, तो आउटपुट 4 2 होगा क्योंकि 4C1 = 4, 4C2 = 6 और 2C1 = 2, इसलिए (4,2) ही एकमात्र इच्