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

MongoDB में Multiple Fields के साथ Group करके Duplicate Values Count करना

इसके लिए MongoDB aggregate में $cond का उपयोग करें। $cond boolean expression को evaluate करके दो specified return expressions में से एक return करता है।

Collection बनाना

> db.demo536.insertOne({"Name1":"Chris","Name2":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8c843eef4dcbee04fbbc01") }
> db.demo536.insertOne({"Name1":"David","Name2":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8c843fef4dcbee04fbbc02") }
> db.demo536.insertOne({"Name1":"Bob","Name2":"Sam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8c843fef4dcbee04fbbc03") }
> db.demo536.insertOne({"Name1":"Chris","Name2":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8c843fef4dcbee04fbbc04") }

सभी Documents Display करना

> db.demo536.find();

Output:

{ "_id" : ObjectId("5e8c843eef4dcbee04fbbc01"), "Name1" : "Chris", "Name2" : "David" }
{ "_id" : ObjectId("5e8c843fef4dcbee04fbbc02"), "Name1" : "David", "Name2" : "Chris" }
{ "_id" : ObjectId("5e8c843fef4dcbee04fbbc03"), "Name1" : "Bob", "Name2" : "Sam" }
{ "_id" : ObjectId("5e8c843fef4dcbee04fbbc04"), "Name1" : "Chris", "Name2" : "David" }

Multiple Fields के साथ Group करने का Query

$cond का उपयोग करके alphabetical order में names को arrange करें और फिर group करें:

> db.demo536.aggregate([
... {
...   $project:
...   {
...     FirstName1:
...     {
...       $cond: { if: { $gte: [ "$Name1", "$Name2" ] }, then: "$Name2", else: "$Name1" }
...     },
...     FirstName2:
...     {
...       $cond: { if: { $lt: [ "$Name1", "$Name2" ] }, then: "$Name2", else: "$Name1" }
...     }
...   }
... },
... {
...   $group:
...   {
...     _id:
...     {
...       Name1: "$FirstName1",
...       Name2: "$FirstName2"
...     },
...     count: { $sum: 1}
...   }
... }
... ])

Output:

{ "_id" : { "Name1" : "Bob", "Name2" : "Sam" }, "count" : 1 }
{ "_id" : { "Name1" : "Chris", "Name2" : "David" }, "count" : 3 }

व्याख्या: यहाँ $cond का उपयोग करके दोनों names को alphabetically sort किया गया है ताकि ("Chris", "David") और ("David", "Chris") को same pair माना जाए। फिर $group में count calculate किया गया।

  1. - MySQL में अलग कॉलम में विशिष्ट मानों की अधिकतम गिनती कैसे प्राप्त करें? COUNT और GROUP BY

    इसके लिए COUNT() फ़ंक्शन के साथ GROUP BY क्लॉज़ का उपयोग करें। टेबल बनाएं mysql> create table DemoTable ( -> Name varchar(100) -> ); Query OK, 0 rows affected (0.69 sec) रिकॉर्ड्स डालें mysql> insert into DemoTable values(John); Query OK, 1 row affected (0.19 sec) mysql> ins

  1. - MySQL में GROUP BY और ORDER BY COUNT का उपयोग करके कॉलम में दोहराए गए मानों की गिनती करना

    MySQL में GROUP BY और COUNT() का उपयोग करके कॉलम में प्रत्येक विशिष्ट मान की आवृत्ति गिनें और घटते क्रम में क्रमबद्ध करें। उदाहरण: टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable ( -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> PostMessage VARCHAR(100) -> ); Query

  1. - MySQL में तिथि के अनुसार परिणाम समूहित करना और डुप्लिकेट मानों की गिनती दिखाना

    तिथि और LIKE फ़िल्टर के साथ समूह गिनती DATE() फ़ंक्शन से केवल तिथि भाग निकालकर GROUP BY करें, और LIKE से पैटर्न मिलान करें। तालिका और डेटा (202, 2013-03-18 04:10:01); क्वेरी: 202 से शुरू होने वाले कोड की तिथिवार गिनती GROUP BY DATE(ArrivalDate); परिणाम +-------------------+-------------------