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

MongoDB एग्रीगेशन में डबल $group का उपयोग करके फ़ील्ड द्वारा समूहीकृत अद्वितीय मान गिनना

MongoDB में दो-स्तरीय ग्रुपिंग: अद्वितीय मानों की गिनती

एक फ़ील्ड (Name1) द्वारा समूहित करके दूसरे फ़ील्ड (Name2) के अद्वितीय संयोजनों की गिनती करने के लिए, दो $group स्टेज्स का उपयोग करें: पहला संयुक्त कुंजी द्वारा, दूसरा पहली कुंजी द्वारा गिनती के लिए।

नमूना डेटा

> db.demo354.insertOne({"Name1": "Chris", "Name2": "David"});
{ "acknowledged": true, "insertedId": ObjectId("5e5685a6f8647eb59e5620c0") }
> db.demo354.insertOne({"Name1": "Chris", "Name2": "David"});  // डुप्लिकेट
{ "acknowledged": true, "insertedId": ObjectId("5e5685a9f8647eb59e5620c1") }
> db.demo354.insertOne({"Name1": "Chris", "Name2": "Bob"});
{ "acknowledged": true, "insertedId": ObjectId("5e5685aff8647eb59e5620c2") }
> db.demo354.insertOne({"Name1": "Carol", "Name2": "John"});
{ "acknowledged": true, "insertedId": ObjectId("5e5685c4f8647eb59e5620c3") }
> db.demo354.insertOne({"Name1": "Carol", "Name2": "John"});  // डुप्लिकेट
{ "acknowledged": true, "insertedId": ObjectId("5e5685c5f8647eb59e5620c4") }

एग्रीगेशन: Name1 प्रति अद्वितीय Name2 गिनती

> db.demo354.aggregate([
    {$group: {_id: {"Name1": "$Name1", "Name2": "$Name2"}}},  // अद्वितीय जोड़े
    {$group: {_id: "$_id.Name1", "Name2": {$sum: 1}}},        // Name1 द्वारा गिनती
    {$project: {_id: 0, Name1: "$_id", Name2: 1}}              // आकार बदलना
]);

परिणाम

{ "Name2": 2, "Name1": "Chris" }  // Chris के साथ David, Bob (2 अद्वितीय)
{ "Name2": 1, "Name1": "Carol" }  // Carol के साथ केवल John (1 अद्वितीय)

पहला $group संयुक्त (Name1, Name2) द्वारा डुप्लिकेट हटाता है। दूसरा $group Name1 द्वारा गिनता है। $project आउटपुट साफ़ करता है।

  1. - MongoDB में Field द्वारा Documents Group करके Select करना

    Field द्वारा documents group करके select करने के लिए $group के साथ $project का उपयोग करें। Collection बनाना > db.demo540.insertOne({id:1,Name:Chris,CountryName:US}); { acknowledged : true, insertedId : ObjectId(5e8ca368ef4dcbee04fbbc0e) } > db.demo540.insertOne({id:1,Name:Chris,CountryName:UK

  1. - MongoDB एग्रीगेशन: सभी दस्तावेजों में विशिष्ट मानों की गिनती

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo718.insertOne({ id:101, details: { OtherDetails: [Chris, Mike, Sam], GroupName: [Group-1], Info: [] } }); { acknowledged : true, insertedId : ObjectId(5eaae258

  1. - MongoDB क्वेरी: फील्ड मानों में "@email" जैसे स्ट्रिंग की खोज करें

    MongoDB find() का उपयोग करके ईमेल स्ट्रिंग खोजें। आइए एक कलेक्शन बनाते हैं: > db.demo727.insertOne({UserId:John@email.com}); { acknowledged : true, insertedId : ObjectId(5eab375f43417811278f5898) } > db.demo727.insertOne({UserId:John@yahoo.com}); { acknowledged : true, insertedId : ObjectId(5