ఉదాహరణ 01
MongoDBలో డేటాబేస్ సేకరణ ఫీల్డ్లలో $కౌంట్ ఆపరేషన్ చేయడానికి, మన దగ్గర అనేక రికార్డులు ఉండాలి. అందువల్ల, మేము 'పరీక్ష' పేరుతో ఒక సేకరణను సృష్టించాము మరియు insertMany() ఫంక్షన్ని ఉపయోగించి ఏకకాలంలో 12 రికార్డ్లను చొప్పించాము. ఇప్పుడు, ఈ “పరీక్ష” సేకరణ యొక్క రికార్డులు MongoDB షెల్లో ఫైండ్() ఫంక్షన్ ప్రశ్న ద్వారా ప్రదర్శించబడ్డాయి. ఇది మొత్తం మూడు ఫీల్డ్లను కలిగి ఉందని మీరు చూడవచ్చు:_id, పేరు మరియు స్కోర్.
test> db.Test.find({})
ఇప్పుడు, ఏదైనా ఫీల్డ్లో $కౌంట్ స్టేజ్ని వర్తింపజేయడానికి, మనం తప్పనిసరిగా 'db' సూచనలో MongoDB యొక్క మొత్తం ఫంక్షన్ని ఉపయోగించాలి. మొత్తం ఫంక్షన్ షరతు ప్రకటనను కలిగి ఉంటుంది, తరచుగా నిర్దిష్ట ఫీల్డ్లో $మ్యాచ్ ఆపరేటర్ని ఉపయోగిస్తుంది, దాని తర్వాత $count ఆపరేటర్ని ఉపయోగించి పేర్కొన్న కండిషన్ ఫీల్డ్ నుండి పొందిన మొత్తం గణనను ప్రదర్శించే కొత్త ఫీల్డ్ ఉంటుంది.
మా విషయంలో, మేము స్కోర్ ఫీల్డ్లో '60' విలువకు సరిపోలే రికార్డ్ల కోసం శోధించడానికి $match ఆపరేటర్ని ఉపయోగిస్తున్నాము, అయితే $count ఆపరేటర్ని పొందిన మొత్తం రికార్డ్ల సంఖ్యను లెక్కించడానికి మరియు వాటిని ప్రదర్శించడానికి ఉపయోగించబడింది 'SameScore' పేరుతో కొత్త ఫీల్డ్. ఈ ప్రశ్నకు సంబంధించిన అవుట్పుట్ '2' విలువతో 'SameScore' ఫీల్డ్ని చూపుతోంది, ఇది 'పరీక్ష' సేకరణలో 2 'స్కోరు' విలువ '60'తో రెండు రికార్డ్లు ఉన్నాయని సూచిస్తుంది.
db.Test.aggregate([ { $match: { 'స్కోరు' : 60 } }, { $count: 'సేమ్ స్కోర్' } ])
మీరు టెస్ట్ సేకరణ యొక్క 'పేరు' ఫీల్డ్ వంటి సంఖ్యలు కాకుండా ఇతర ఫీల్డ్లను లెక్కించడానికి $count అగ్రిగేషన్ను కూడా ఉపయోగించవచ్చు. సేకరణలో పేరు ఫీల్డ్కు “జాన్” విలువ ఉన్న రికార్డ్ కోసం శోధించడానికి మేము మ్యాచ్ అగ్రిగేషన్ని ఉపయోగిస్తున్నాము. కౌంట్ అగ్రిగేషన్ 2 సరిపోలిన మొత్తం రికార్డుల సంఖ్యను విజయవంతంగా లెక్కించింది.
db.Test.aggregate([ { $match: { 'పేరు' : 'జాన్' } }, { $count: 'అదే పేరు' } ])
ఉదాహరణ 02
పై ప్రశ్నను అప్డేట్ చేద్దాం మరియు విభిన్న రికార్డులను పొందడానికి మరొక షరతును వర్తింపజేద్దాం. ఈసారి, స్కోరు ఫీల్డ్ విలువ 30 కంటే తక్కువ ఉన్న రికార్డుల మొత్తం గణనను పొందడానికి మేము స్కోరు ఫీల్డ్ యొక్క $మ్యాచ్ అగ్రిగేషన్ను వర్తింపజేస్తాము. గణన అగ్రిగేషన్ మొత్తం రికార్డ్ల సంఖ్యను లెక్కించడం మరియు కొత్తదానికి జోడించడం కాలమ్ 'గ్రేడ్D.' అవుట్పుట్ '2' ఫలితాన్ని సరిపోలిన విలువకు గణన సంఖ్యగా చూపుతుంది.
db.Test.aggregate( [ { $match: { score: { $lt: 30 } } , { $count: 'గ్రేడ్D' } ])ఫీల్డ్ రికార్డ్లలో 1 కంటే ఎక్కువ షరతులను అమలు చేయడానికి లాజికల్ ఆపరేటర్లను వర్తింపజేసేటప్పుడు మీరు $count అగ్రిగేషన్ను కూడా ఉపయోగించవచ్చు. కాబట్టి, $మరియు ఆపరేటర్ని ఉపయోగించి 'స్కోర్' ఫీల్డ్కు మొత్తం రెండు షరతులు వర్తింపజేయబడ్డాయి: gte (దాని కంటే ఎక్కువ లేదా సమానం) మరియు lte (తక్కువ మరియు సమానం). ఫలితాన్ని పొందడానికి మరియు దాని రికార్డులను లెక్కించడానికి రెండు షరతులు తప్పనిసరిగా నిజం కావాలి. సరిపోలే ప్రమాణాలతో ఐదు రికార్డులు ఉన్నాయని మొత్తం గణన చూపిస్తుంది.
db.Test.aggregate( [ { $match: { '$మరియు' : [ {{ 'స్కోరు' : {$gte: 60 }}, { 'స్కోరు' : {$lte: 80 }} ] }},
{$కౌంట్: 'గ్రేడ్ బి' } ])
ఉదాహరణ 03
పై దృష్టాంతాలలో, నిర్దిష్ట ఫీల్డ్ విలువలకు, పేర్కొన్న స్కోర్ లేదా పేరు వంటి సరిపోలిన రికార్డ్ల సంఖ్యను మాత్రమే పొందడానికి మేము కౌంట్ అగ్రిగేషన్ని ఉపయోగించాము. మొంగోడిబి యొక్క అగ్రిగేషన్ పద్ధతి సేకరణలో నకిలీ విలువలను కలిగి ఉన్న అన్ని రికార్డుల గణన సంఖ్యను పొందడానికి మిమ్మల్ని అనుమతిస్తుంది.
దీని కోసం, మీరు దిగువన ఉన్న మొత్తం ఫంక్షన్ కమాండ్లో $గ్రూప్ అగ్రిగేషన్ని ఉపయోగించాలి. కౌంట్ అగ్రిగేషన్ పని చేసే “పేరు” ఫీల్డ్ను పేర్కొనడానికి ఫీల్డ్ _id ఉపయోగించబడింది. దీనితో పాటుగా, 'పేరు' ఫీల్డ్లో అనేక నకిలీలను లెక్కించడానికి NameCount వినియోగదారు నిర్వచించిన ఫీల్డ్ $count అగ్రిగేషన్ను ఉపయోగిస్తుంది.
ఈ ప్రశ్నకు సంబంధించిన అవుట్పుట్ దిగువన ప్రదర్శించబడింది. ఇది 'పేరు' ఫీల్డ్ నుండి విలువలను కలిగి ఉంటుంది మరియు సిలియన్ 4 డూప్లికేట్లను కలిగి ఉన్నటువంటి విలువల నకిలీల ప్రకారం NameCount ఫీల్డ్లోని వాటి గణన సంఖ్యను కలిగి ఉంటుంది.
db.Test.aggregate([ { $group: { _id: '$పేరు' , Namecount: { $count: {} }, }, }, ])
ఉదాహరణ 04
నిర్దిష్ట ఫీల్డ్ విలువలను లెక్కించడానికి మేము సమూహ ఫీల్డ్ రికార్డ్లలో కౌంట్ అగ్రిగేషన్ను కూడా ఉపయోగించవచ్చు. దీని గురించి వివరించడానికి, మేము 'టీచర్' పేరుతో ఒక సేకరణను సృష్టించాము మరియు ఇతర ఫీల్డ్లతో పాటు దానిలో సమూహ ఫీల్డ్ 'సబ్' మరియు అర్రే-టైప్ ఫీల్డ్ 'షిఫ్ట్'ని జోడించాము: పేరు మరియు చెల్లింపు. ఫైండ్() ఫంక్షన్ ఈ సేకరణ యొక్క మొత్తం ఐదు రికార్డులను ప్రదర్శిస్తోంది.
test> db.Teacher.find({})
ఇప్పుడు, మేము మ్యాచ్ ఆపరేటర్ని కలిగి ఉన్న మొత్తం ఫంక్షన్ని వర్తింపజేసాము. అలాగే, రెండు వేర్వేరు షరతులను కలిగి ఉన్న “సబ్” ఫీల్డ్ యొక్క ఉప-ఫీల్డ్ “గణితం”కి $ మరియు ఆపరేటర్ వర్తింపజేయబడ్డాయి. అప్పుడు గణన లెక్కించబడుతుంది. సబ్ఫీల్డ్ గణితంలో 10 కంటే ఎక్కువ మరియు 20 కంటే తక్కువ విలువలు ఉన్న రెండు రికార్డులు ఉన్నాయని అవుట్పుట్ చూపిస్తుంది.
db.Teacher.aggregate( [ { $match: { '$మరియు' : [ {{ 'sub.math' : {$gte: 10 }}, { 'sub.math' : {$lte: ఇరవై }} ] }}, { $count: 'గ్రేడ్ A' } ] )ఉదాహరణ 05
ఈసారి కౌంట్ అగ్రిగేషన్ని ఉపయోగించకుండా కౌంట్() ఫంక్షన్ని ఉపయోగించి వివరించడానికి చివరి ఉదాహరణను చూద్దాం. కాబట్టి, కౌంట్() ఫంక్షన్ 'టీచర్' సేకరణ యొక్క శ్రేణి-రకం ఫీల్డ్కు వర్తింపజేయబడింది అంటే 'షిఫ్ట్'. ఇండెక్స్ 2ని ఉపయోగించి శ్రేణి ఫీల్డ్ కోసం సూచికలను ఉపయోగించి, మేము సరిపోలే ప్రమాణాలను “రాత్రి”గా పేర్కొన్నాము. ఇది 'రాత్రి' ఎంట్రీ కోసం మొత్తం గణనల సంఖ్యగా '2'ని అవుట్పుట్ చేస్తుంది.
db.Teacher.count({ 'shift.2' : 'రాత్రి' })అదే విధంగా, కౌంట్() ఫంక్షన్ని సమూహ ఫీల్డ్లకు కూడా వర్తింపజేయవచ్చు, ఉదాహరణకు 'ఉపాధ్యాయుడు' సేకరణ నుండి 'ఉప' ఫీల్డ్ యొక్క సబ్ఫీల్డ్ 'ఫై'. మేము 'phy' సబ్ఫీల్డ్లో 14 కంటే తక్కువ విలువలను సూచించే 'lte' ఆపరేటర్ని ఉపయోగించి సరిపోలే ప్రమాణాలను పేర్కొన్నాము. ఈ సూచన యొక్క అవుట్పుట్ “2”ని ప్రదర్శిస్తోంది, అంటే 14 కంటే తక్కువ విలువ కలిగిన 4 రికార్డ్లు.
db.Teacher.count( { 'sub.phy' : { $lte: 14 } })ముగింపు
ఈ గైడ్ అనేక కోడ్ ఉదాహరణలతో MongoDB యొక్క $కౌంట్ అగ్రిగేషన్ని ఉపయోగించడం గురించి వివరిస్తూ మరియు వివరిస్తోంది. ఉదాహరణలలో నిర్దిష్ట విలువ రికార్డులు మరియు సేకరణల ద్వారా అన్ని ఫీల్డ్ రికార్డ్ల కోసం గణన సంఖ్యను పొందేందుకు కౌంట్ అగ్రిగేషన్ యొక్క అంతరార్థం ఉంటుంది. అలాగే, ఇది అర్రే ఫీల్డ్లు మరియు ఎంబెడెడ్ (నెస్టెడ్) ఫీల్డ్లపై కౌంట్ అగ్రిగేషన్ వినియోగాన్ని కలిగి ఉంటుంది. ముగింపులో, కౌంట్ అగ్రిగేషన్ మరియు కౌంట్ ఫంక్షన్ మధ్య వ్యత్యాసాన్ని చూపడానికి కౌంట్() ఫంక్షన్ ఉదాహరణ చేర్చబడింది.