दो क्षेत्रों का चयन करने और अलग-अलग मानों के साथ एक क्रमबद्ध सरणी वापस करने के लिए, $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 }
दो क्षेत्रों का चयन करने और उनके विशिष्ट मानों के साथ एक क्रमबद्ध सरणी वापस करने के लिए क्वेरी निम्नलिखित है। यहां फ़ील्ड "मान 1" और "मान 2" हैं -
> db.sortedArrayWithDistinctDemo.aggregate( ... [ ... { "$group": { ... "_id": null, ... "value1": { "$push": "$value1" }, ... "value2": { "$push": "$value2" } ... }}, ... { "$project": { ... "_id": 0, ... "bothValues": { "$setUnion": [ "$value1", "$value2" ] } ... }} ... ] ... );
यह निम्नलिखित आउटपुट का उत्पादन करेगा। अब सॉर्ट किया गया सरणी अलग-अलग मानों के साथ वापस आ जाता है -
{ "bothValues" : [ 4, 5, 6, 7 ] }