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

MongoDB में एक ही क्वेरी में Group और Distinct ऑपरेशन एक साथ कैसे करें?

MongoDB Aggregation में $group और $addToSet का संयोजन

MongoDB में एक ही एग्रीगेशन पाइपलाइन में ग्रुपिंग और डिस्टिंक्ट मान प्राप्त करने के लिए $group स्टेज के साथ $addToSet एक्यूमुलेटर का उपयोग किया जाता है। $addToSet सरणी में केवल अद्वितीय मान जोड़ता है, जिससे स्वचालित रूप से डिस्टिंक्ट परिणाम मिलता है।

नमूना डेटा: छात्र रिकॉर्ड

> db.demo16.insertOne({ "StudentName": "Chris", "StudentSection": "A", "StudentAge": 23, "StudentMarks": 47 });
{ "acknowledged": true, "insertedId": ObjectId("5e13827455d0fc6657d21f07") }
> db.demo16.insertOne({ "StudentName": "Bob", "StudentSection": "B", "StudentAge": 21, "StudentMarks": 85 });
{ "acknowledged": true, "insertedId": ObjectId("5e13827555d0fc6657d21f08") }
> db.demo16.insertOne({ "StudentName": "Carol", "StudentSection": "A", "StudentAge": 26, "StudentMarks": 97 });
{ "acknowledged": true, "insertedId": ObjectId("5e13827655d0fc6657d21f09") }

एग्रीगेशन पाइपलाइन: Group + Distinct

हम _id: null का उपयोग करके सभी डॉक्यूमेंट्स को एक ही समूह में रखते हैं और विभिन्न फ़ील्ड्स के लिए डिस्टिंक्ट मान, न्यूनतम और अधिकतम मान प्राप्त करते हैं।

> db.demo16.aggregate([
    {
        $group: {
            _id: null,
            StudentName: { $addToSet: "$StudentName" },
            StudentSection: { $addToSet: "$StudentSection" },
            StudentMinimumAge: { $min: "$StudentAge" },
            StudentMaximumAge: { $max: "$StudentAge" },
            StudentMinimumMarks: { $min: "$StudentMarks" },
            StudentMaximumMarks: { $max: "$StudentMarks" }
        }
    }
]).pretty();

परिणाम

{
    "_id": null,
    "StudentName": [ "Carol", "Bob", "Chris" ],
    "StudentSection": [ "B", "A" ],
    "StudentMinimumAge": 21,
    "StudentMaximumAge": 26,
    "StudentMinimumMarks": 47,
    "StudentMaximumMarks": 97
}

परिणाम में प्रत्येक फ़ील्ड के अद्वितीय मान (डिस्टिंक्ट) सरणी के रूप में और संख्यात्मक फ़ील्ड्स के लिए न्यूनतम/अधिकतम मान शामिल हैं। यह एक ही पास में सारांश सांख्यिकी प्राप्त करने का कुशल तरीका है।

  1. - MySQL क्वेरी में DISTINCT और COUNT का एक साथ उपयोग

    हम एक ही MySQL क्वेरी में DISTINCT और COUNT का एक साथ उपयोग कर सकते हैं। सबसे पहले, आइए एक टेबल बनाते हैं। टेबल बनाने के लिए CREATE कमांड का उपयोग किया जाता है। ); Query OK, 0 rows affected (0.48 sec) INSERT कमांड की मदद से रिकॉर्ड्स डाले जाते हैं। insert into DistCountDemo values(4,Carol,23);

  1. - क्या MySQL में COUNT() और DISTINCT एक साथ उपयोग कर सकते हैं?

    हां, केवल विशिष्ट (distinct) पंक्तियों की गिनती प्रदर्शित करने के लिए COUNT() और DISTINCT एक साथ उपयोग कर सकते हैं। सिंटैक्स SELECT COUNT(DISTINCT yourColumnName) AS anyVariableName FROM yourTableName; उदाहरण के साथ समझें सबसे पहले एक टेबल बनाते हैं: ); Query OK, 0 rows affected (3.11 sec) रि

  1. - MySQL में GROUP_CONCAT DISTINCT का उपयोग करके ID के अनुसार विशिष्ट नाम जोड़ना

    MySQL में सबक्वेरी में DISTINCT और GROUP_CONCAT के साथ ID द्वारा विशिष्ट नाम संयोजित करना GROUP_CONCAT() के साथ DISTINCT का उपयोग करने के लिए, पहले सबक्वेरी में DISTINCT लागू करें, फिर बाहरी क्वेरी में GROUP_CONCAT() करें। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( Id INT, Na