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

MongoDB एग्रीगेशन में अधिकतम मान के साथ सरणी तत्वों को कैसे मिलाएं और समूहित करें?

इसके लिए, MongoDB में $group के साथ $max का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं:

> db.demo510.insertOne(
{
    details:[
        {
            Name:"Chris",
            Score:56
        },
        {
            Name:"David",
            Score:45
        }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8845fa987b6e0e9d18f582") }
> db.demo510.insertOne(
{
    details:[
        {
            Name:"Chris",
            Score:56
        },
        {
            Name:"David",
            Score:47
        }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8845fb987b6e0e9d18f583") }
> db.demo510.insertOne(
{
    details:[
        {
            Name:"Chris",
            Score:45
        },
        {
            Name:"David",
            Score:91
        }
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8845fb987b6e0e9d18f584") }

find() मेथड की मदद से संग्रह के सभी दस्तावेज़ प्रदर्शित करें:

> db.demo510.find();

यह निम्न आउटपुट देगा:

{ "_id" : ObjectId("5e8845fa987b6e0e9d18f582"), "details" : [ { "Name" : "Chris", "Score" : 56 }, { "Name" : "David", "Score" : 45 } ] }
{ "_id" : ObjectId("5e8845fb987b6e0e9d18f583"), "details" : [ { "Name" : "Chris", "Score" : 56 }, { "Name" : "David", "Score" : 47 } ] }
{ "_id" : ObjectId("5e8845fb987b6e0e9d18f584"), "details" : [ { "Name" : "Chris", "Score" : 45 }, { "Name" : "David", "Score" : 91 } ] }

एग्रीगेशन में अधिकतम मान के साथ सरणी तत्वों को मिलाने और समूहित करने की क्वेरी:

> db.demo510.aggregate([
    { "$project": {
        "details": {
            "$arrayElemAt": [
                { "$filter": {
                    "input": "$details",
                    "as": "res",
                    "cond": {
                        "$eq": [
                            "$$res.Score",
                            { "$max": {
                                "$map": {
                                    "input": "$details",
                                    "as": "out",
                                    "in": "$$out.Score"
                                }
                            }}
                        ]
                    }
                }},
                0
            ]
        }
    }},
    { "$group": {
        "_id": "$details.Name",
        "Name": { "$first": "$details.Name" },
        "count": { "$sum": 1 }
    }}
])

यह निम्न आउटपुट देगा:

{ "_id" : "David", "Name" : "David", "count" : 1 }
{ "_id" : "Chris", "Name" : "Chris", "count" : 2 }
  1. - JavaScript में ऐरे का अधिकतम मान कैसे खोजें?

    ऐरे में अधिकतम मान खोजने के तरीके 1. Math.max() के साथ स्प्रेड ऑपरेटर (आधुनिक, अनुशंसित) <script> var numbers = [6, 39, 55, 1, 44]; var max = Math.max(...numbers); document.write(अधिकतम: + max); // 55 </script> 2. Math.max.apply() (पुराना तरीका) <html> <body> <s

  1. जावास्क्रिप्ट में ऐरे के एलिमेंट्स को उसी ऐरे में डुप्लिकेट कैसे करें? जावास्क्रिप्ट में ऐरे के एलिमेंट्स को उसी ऐरे में डुप्लिकेट कैसे करें?

    ऐरे के एलिमेंट्स को उसी ऐरे में डुप्लिकेट करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 > <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>    

  1. - एग्रीगेशन पाइपलाइन में एम्बेडेड डॉक्यूमेंट्स की सरणी को पैरेंट में ले जाकर की/वैल्यू कैसे बदलें?

    MongoDB एग्रीगेशन में $replaceRoot का उपयोग करें। $replaceRoot इनपुट डॉक्यूमेंट को निर्दिष्ट डॉक्यूमेंट से बदल देता है। ऑपरेशन इनपुट डॉक्यूमेंट के सभी मौजूदा फील्ड्स को बदल देता है, जिसमें _id फील्ड भी शामिल है। आइए एक कलेक्शन बनाते हैं: > db.demo733.insertOne( { SubjectDetails: [ { SubjectName: