MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB एक अनुक्रमित कॉलम पर गिनती (विशिष्ट x) का चयन करें - बड़े डेटा सेट के लिए अद्वितीय परिणाम गिनें

1) ऐसा करने का सबसे आसान तरीका एकत्रीकरण ढांचे के माध्यम से है। इसमें दो "$group" कमांड लगते हैं:पहला समूह अलग-अलग मानों के आधार पर, दूसरा एक सभी अलग-अलग मानों को गिनता है

pipeline = [ 
    { $group: { _id: "$myIndexedNonUniqueField"}  },
    { $group: { _id: 1, count: { $sum: 1 } } }
];

//
// Run the aggregation command
//
R = db.runCommand( 
    {
    "aggregate": "myCollection" , 
    "pipeline": pipeline
    }
);
printjson(R);

2) यदि आप इसे मानचित्र/घटाना के साथ करना चाहते हैं तो आप कर सकते हैं। यह भी दो चरणों वाली प्रक्रिया है:पहले चरण में हम कुंजी के लिए प्रत्येक विशिष्ट मान की सूची के साथ एक नया संग्रह बनाते हैं। दूसरे में हम नए संग्रह पर एक गिनती () करते हैं।

var SOURCE = db.myCollection;
var DEST = db.distinct
DEST.drop();


map = function() {
  emit( this.myIndexedNonUniqueField , {count: 1});
}

reduce = function(key, values) {
  var count = 0;

  values.forEach(function(v) {
    count += v['count'];        // count each distinct value for lagniappe
  });

  return {count: count};
};

//
// run map/reduce
//
res = SOURCE.mapReduce( map, reduce, 
    { out: 'distinct', 
     verbose: true
    }
    );

print( "distinct count= " + res.counts.output );
print( "distinct count=", DEST.count() );

ध्यान दें कि आप मानचित्र के परिणाम को वापस नहीं कर सकते/इनलाइन को कम कर सकते हैं, क्योंकि यह संभावित रूप से 16 एमबी दस्तावेज़ आकार सीमा को पार कर जाएगा। आप कर सकते हैं गणना को एक संग्रह में सहेजें और फिर संग्रह के आकार की गणना करें (), या आप mapReduce () के वापसी मूल्य से परिणामों की संख्या प्राप्त कर सकते हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नवीनतम MongoDB संस्करण में अपग्रेड करने के लिए टिप्स

  2. कनेक्ट होने के बाद mongobee द्वारा एटलस क्लस्टर पर DBname.system.indexes को पढ़ना विफल रहा

  3. दस्तावेज़ों के लिए क्वेरी जहां सरणी का आकार 1 . से बड़ा है

  4. Mongoose स्कीमा में अनेक मानों का उपयोग करने वाले अद्वितीय दस्तावेज़

  5. क्यों MongoDB – 2022 के लिए MongoDB सीखने के 10 कारण