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

MongoDB में दो फील्ड्स सिलेक्ट करके उनके डिस्टिंक्ट वैल्यूज का सॉर्टेड ऐरे कैसे लौटाएं?

MongoDB में $setUnion से दो फील्ड्स के डिस्टिंक्ट वैल्यूज का सॉर्टेड ऐरे

दो फील्ड्स के डिस्टिंक्ट वैल्यूज को मिलाकर सॉर्टेड ऐरे प्राप्त करने के लिए एग्रीगेशन फ्रेमवर्क में $setUnion ऑपरेटर का उपयोग करें।

उदाहरण: कलेक्शन और डॉक्यूमेंट्स बनाना

> db.sortedArrayWithDistinctDemo.insertOne({ value1: 4, value2: 5});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc690b99cb58ca2b005e666") }
> db.sortedArrayWithDistinctDemo.insertOne({value1: 5, value2: 6});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc690b99cb58ca2b005e667") }
> db.sortedArrayWithDistinctDemo.insertOne({value1: 7, value2: 4});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc690b99cb58ca2b005e668") }

सभी डॉक्यूमेंट्स देखना

> db.sortedArrayWithDistinctDemo.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cc690b99cb58ca2b005e666"), "value1" : 4, "value2" : 5 }
{ "_id" : ObjectId("5cc690b99cb58ca2b005e667"), "value1" : 5, "value2" : 6 }
{ "_id" : ObjectId("5cc690b99cb58ca2b005e668"), "value1" : 7, "value2" : 4 }

डिस्टिंक्ट वैल्यूज का सॉर्टेड ऐरे प्राप्त करना

> db.sortedArrayWithDistinctDemo.aggregate(
...   [
...     { "$group": {
...       "_id": null,
...       "value1": { "$push": "$value1" },
...       "value2": { "$push": "$value2" }
...     }},
...     { "$project": {
...       "_id": 0,
...       "bothValues": { "$setUnion": [ "$value1", "$value2" ] }
...     }}
...   ]
... );

आउटपुट:

{ "bothValues" : [ 4, 5, 6, 7 ] }

व्याख्या:

  1. $group - सभी डॉक्यूमेंट्स को एक ग्रुप में जोड़ता है, दोनों फील्ड्स के वैल्यूज को ऐरे में पुश करता है
  2. $setUnion - दोनों ऐरे के यूनियन को लेकर डुप्लीकेट हटाता है और सॉर्ट करता है
  3. $project - केवल परिणाम ऐरे लौटाता है

नोट: $setUnion स्वचालित रूप से परिणाम को सॉर्टेड ऑर्डर में लौटाता है।

  1. - MongoDB में सरणी फील्ड के साथ काम करके सभी से मिलान कैसे करें?

    MongoDB में सभी से मिलान करने के लिए $all का उपयोग करें। $all ऑपरेटर उन डॉक्यूमेंट्स को चुनता है जहां फील्ड का मान एक सरणी है जिसमें सभी निर्दिष्ट तत्व होते हैं। आइए एक कलेक्शन बनाते हैं: > db.demo695.insertOne({ListOfValues:[100,200,500,800]}); { acknowledged : true, insertedId : ObjectId(5ea6d

  1. - 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({

  1. - MySQL में विशिष्ट मान और उनकी गिनती कैसे वापस करें

    केवल विशिष्ट मान वापस करने के लिए, GROUP BY क्लॉज का उपयोग करें। पहले एक टेबल बनाते हैं: mysql> create table DemoTable754 (ProductPrice int); Query OK, 0 rows affected (0.48 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable754 values(200); Query OK, 1 ro