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

MongoDB क्वेरी: डिस्टिंक्ट सेलेक्ट करें और काउंट करें


आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं:

> db.demo586.insertOne({
    "details": [
        { "Name":"Chris", "Marks":71 },
        { "Name":"Chris", "Marks":61 },
        { "Name":"David", "Marks":81 }
    ]
}); { "acknowledged" : true, "insertedId" : ObjectId("5e9200fefd2d90c177b5bcc7") }

> db.demo586.insertOne({
    "details": [
        { "Name":"Chris", "Marks":71 },
        { "Name":"Carol", "Marks":61 },
        { "Name":"David", "Marks":81 }
    ]
}); { "acknowledged" : true, "insertedId" : ObjectId("5e9200fefd2d90c177b5bcc8") }

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

> db.demo586.find();

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

{ "_id" : ObjectId("5e9200fefd2d90c177b5bcc7"), "details" : [ { "Name" : "Chris", "Marks" : 71 }, { "Name" : "Chris", "Marks" : 61 }, { "Name" : "David", "Marks" : 81 } ] }
{ "_id" : ObjectId("5e9200fefd2d90c177b5bcc8"), "details" : [ { "Name" : "Chris", "Marks" : 71 }, { "Name" : "Carol", "Marks" : 61 }, { "Name" : "David", "Marks" : 81 } ] }

डिस्टिंक्टली सेलेक्ट और काउंट करने के लिए क्वेरी:

> var q= [
    { "$unwind": "$details" },
    { "$group": {
        "_id": { "Name": "$details.Name", "Marks": "$details.Marks" },
        "count": { "$sum": 1 }
    }},
    { "$group": {
        "_id": "$_id.Name",
        "distinctV": {
            "$addToSet": {
                "value": "$_id.Marks",
                "numberOfValues": "$count"
            }
        }
    }},
    { "$project": {
        "_id": 0,
        "Name": "$_id",
        "distinctV": 1
    }}
];
> db.demo586.aggregate(q);

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

{ "distinctV" : [ { "value" : 61, "numberOfValues" : 1 } ], "Name" : "Carol" }
{ "distinctV" : [ { "value" : 71, "numberOfValues" : 2 }, { "value" : 61, "numberOfValues" : 1 } ], "Name" : "Chris" }
{ "distinctV" : [ { "value" : 81, "numberOfValues" : 2 } ], "Name" : "David" }

  1. - MySQL में SELECT DISTINCT और COUNT साथ में कैसे करें?

    MySQL में प्रत्येक विशिष्ट मान की गिनती (COUNT) के साथ DISTINCT मान प्राप्त करने के लिए GROUP BY के साथ एग्रीगेट फंक्शन COUNT(*) का उपयोग करें। सिंटैक्स SELECT yourColumnName, COUNT(*) AS count_value FROM yourTableName GROUP BY yourColumnName; उदाहरण के साथ समझें टेबल बनाएं: CREATE TABLE select

  1. - MySQL में GROUP BY का उपयोग करके अद्वितीय मान प्राप्त करना और उनकी गणना करना

    समाधान: GROUP BY के साथ COUNT(*) किसी कॉलम के अद्वितीय मान प्राप्त करने और प्रत्येक की घटनाओं की गणना करने के लिए GROUP BY क्लॉज का उपयोग करें। सिंटैक्स SELECT yourColumnName, COUNT(*) AS anyAliasName FROM yourTableName GROUP BY yourColumnName; व्यावहारिक उदाहरण टेबल बनाना और डेटा डालना (Sam), (S

  1. - MySQL में GROUP BY MAX() का उपयोग करके DISTINCT मानों को ID के अवरोही क्रम में चुनना

    MySQL में GROUP BY और ORDER BY MAX() का उपयोग करके विशिष्ट मान चुनें और उन्हें अधिकतम ID के अवरोही क्रम में क्रमबद्ध करें। उदाहरण: टेबल बनाना और डुप्लिकेट डेटा डालना mysql> CREATE TABLE DemoTable ( -> Id INT, -> Name VARCHAR(100) -> ); Query OK, 0 rows affected (0.81 sec)