మొంగోడిబి లేదా ఆపరేటర్

Mongodibi Leda Aparetar



మేము MongoDBలో అందుబాటులో ఉన్న విభిన్న లాజికల్ క్వెరీ ఆపరేటర్‌లను కలిగి ఉన్నాము మరియు వాటిలో ఒకటి $ లేదా ఆపరేటర్. MongoDB $లేదా ఆపరేటర్ అనేది రెండు లేదా అంతకంటే ఎక్కువ వ్యక్తీకరణలను కలిగి ఉన్న శ్రేణిలో లాజికల్ OR ఆపరేషన్‌ను అమలు చేయడానికి మరియు శ్రేణిలోని ఏదైనా ఒక నిర్దిష్ట వ్యక్తీకరణతో సరిపోలే పత్రాలను మాత్రమే తిరిగి పొందేందుకు ఉపయోగించబడుతుంది. కేవలం ఒక సరిపోలే డాక్యుమెంట్ ప్రమాణంతో ఒకే ప్రశ్నలో బహుళ స్టేట్‌మెంట్‌లను కనుగొనడానికి $లేదా ఆపరేటర్ ఉపయోగించబడుతుంది. $ లేదా ఆపరేటర్ అనేక కీలు మరియు విలువల కలయికను సులభతరం చేస్తుంది.

MongoDBలో OR ఆపరేటర్‌ని ఎలా ఉపయోగించాలి

MongoDBలోని OR ఆపరేటర్ “$or” ఆకృతిలో సూచించబడుతుంది. లాజికల్ OR ఆపరేషన్ నిర్వహించబడే స్క్వేర్ బ్రాకెట్‌లలో బహుళ వ్యక్తీకరణలను జతచేయడానికి “$or” ఉపయోగించబడుతుంది. మేము MongoDB సేకరణలో $ లేదా ఆపరేటర్‌ని ఉపయోగిస్తాము. మేము 'రోగులు' పేరుతో MongoDB సేకరణను సృష్టిస్తాము. మేము $ లేదా ఆపరేటర్‌ని నిర్వహించే బహుళ పత్రాలతో “రోగుల” సేకరణ చొప్పించబడింది. ఇన్సర్ట్‌మేనీ() పద్ధతిని ప్రారంభించడం ద్వారా క్రింది పత్రాలు MongoDBలో చొప్పించబడ్డాయి:

db.Patients.insertMany ( [
{
'మొదటి పేరు' : 'జెన్నిఫర్' ,
'చివరి పేరు' : 'జాషువా' ,
'వయస్సు' : 44 ,
'ఫోను నంబరు' : 43400517 ,
'అపాయింట్‌మెంట్' : 'దంతవైద్యుడు' ,
'ఛార్జీలు' : 2000 ,
'పరీక్ష' : [ 'ఎక్స్-రే' , 'రక్తం' , 'పుల్పాల్' ]
} ,
{
'మొదటి పేరు' : 'థామస్' ,
'చివరి పేరు' : 'స్టీవెన్' ,
'వయస్సు' : 74 ,
'ఫోను నంబరు' : 39034694 ,
'అపాయింట్మెంట్ తేదీ' : 'సర్జన్' ,
'ఛార్జీలు' : 6000 ,
'పరీక్ష' : [ 'ఎంపిక' , 'PPT' ]
} ,
{
'మొదటి పేరు' : 'చార్లెస్' ,
'చివరి పేరు' : 'డేనియల్' ,
'వయస్సు' : 35 ,
'ఫోను నంబరు' : 65712165 ,
'అపాయింట్‌మెంట్' : 'కార్డియాలజీ వైద్యుడు' ,
'ఛార్జీలు' : 2000 ,
'పరీక్ష' : [ 'CT' , 'MRI' ]
} ,
{
'మొదటి పేరు' : 'మిచెల్' ,
'చివరి పేరు' : 'పాల్' ,
'వయస్సు' : 51 ,
'ఫోను నంబరు' : 54399288 ,
'అపాయింట్‌మెంట్' : 'చర్మ వైద్యుడు' ,
'ఛార్జీలు' : 8000 ,
'పరీక్ష' : [ 'స్కిన్ బయాప్సీలు' , 'వుడ్ లైట్' , 'స్కిన్ స్క్రాపింగ్' ]
} ,

{
'మొదటి పేరు' : 'ఆండ్రూ' ,
'చివరి పేరు' : 'జెర్రీ' ,
'వయస్సు' : 69 ,
'ఫోను నంబరు' : 6108100 ,
'అపాయింట్‌మెంట్' : 'కార్డియాలజీ వైద్యుడు' ,
'ఛార్జీలు' : 7000 ,
'పరీక్ష' : [ 'ECG' , 'రక్తంలో చక్కెర స్థాయి' , 'అల్ట్రాసౌండ్' ]
}
] )

మునుపు చొప్పించిన పత్రాల అవుట్‌పుట్ “నిజం” అని గుర్తిస్తుంది మరియు ప్రతి పత్రానికి “ఇన్‌సర్టెడ్ ఐడి” విలువలను అందిస్తుంది.









ఉదాహరణ 1: MongoDB $OR పత్రాలను సరిపోల్చడానికి ఆపరేటర్

MongoDB $లేదా ఆపరేటర్ యొక్క ప్రాథమిక ప్రశ్న ఇక్కడ అమలు చేయబడింది, ఇది MongoDBలో ఈ ఆపరేటర్ యొక్క పనిని ప్రదర్శిస్తుంది. ఇక్కడ, మేము find() పద్ధతితో ప్రశ్నను నిర్వచించాము. $లేదా ఆపరేటర్‌తో ఫైండ్() పద్ధతి మరింతగా పేర్కొనబడింది. $ లేదా ఆపరేటర్ విలువలతో కేటాయించబడిన “అపాయింట్‌మెంట్” మరియు “ఛార్జీలు” అనే రెండు ఫీల్డ్‌లను తీసుకుంటారు. $ లేదా ఆపరేటర్ ఫీల్డ్ విలువతో సరిపోలుతుంది మరియు ఫీల్డ్ విలువలతో సరిపోలిన విలువలు ఉన్న పత్రాలను మాత్రమే తిరిగి పొందుతుంది. $ లేదా ఆపరేటర్ యొక్క ప్రశ్న నిర్మాణం కింది వాటిలో అందించబడింది:



db.Patients.find ( { $లేదా : [ { అపాయింట్‌మెంట్: 'చర్మ వైద్యుడు' } ,
{ ఛార్జీలు: 7000 } ] } ) .చక్కని ( )

'డెర్మటాలజిస్ట్' వద్ద 'అపాయింట్‌మెంట్' మరియు 'ఛార్జీలు' '7000' ఉన్న పత్రాలను మేము పొందుతాము. $లేదా ఆపరేటర్ రెండు ఫీల్డ్ విలువల నుండి నిజమైన ఫలితాలను కనుగొంటారు మరియు అవుట్‌పుట్‌లో సరిపోలిన పత్రాలను తిరిగి అందిస్తారు.





ఉదాహరణ 2: MongoDB $OR ఉనికిలో లేని పత్రాలను సరిపోల్చడానికి ఆపరేటర్

$లేదా ఆపరేటర్ యొక్క మునుపటి ప్రశ్నలో, మేము సరిపోలిన పత్రాలను పొందాము. ఇప్పుడు, మేము 'రోగి' సేకరణ నుండి ఉనికిలో లేని పత్రాన్ని తిరిగి పొందుతాము. కింది $లేదా ఆపరేటర్ ప్రశ్న 'మొదటి పేరు' 'చార్లెస్' మరియు 'అపాయింట్‌మెంట్' 'వైద్యుని' వద్ద ఉన్న పత్రాన్ని తీసుకుంటుంది. $లేదా ఆపరేటర్ 'పేషెంట్స్' సేకరణలోని ఈ ఫీల్డ్ విలువలతో సరిపోలుతుంది మరియు సరిపోలిన తర్వాత ఫలితాలను రూపొందిస్తుంది.



db.Patients.find ( { $లేదా : [ { 'మొదటి పేరు' : 'చార్లెస్' } , { 'అపాయింట్‌మెంట్' : 'వైద్యుడు' } ] } ) .చక్కని ( )

$లేదా ఆపరేటర్‌కు ఒక నిజమైన ఫలితం ఉంది మరియు మరొకటి తప్పుడు ఫలితాన్ని కలిగి ఉంది. 'రోగి' సేకరణలోని ఏ డాక్యుమెంట్‌లతో సరిపోలని 'వైద్యుడు' విలువతో 'అపాయింట్‌మెంట్'ని మేము పేర్కొన్నాము. అందుకే, $లేదా ఆపరేటర్ సరిపోలిన ఫీల్డ్ యొక్క డాక్యుమెంట్‌ను మాత్రమే అవుట్‌పుట్‌గా 'పేషెంట్'గా తిరిగి అందిస్తారు.

ఉదాహరణ 3: MongoDB $OR బహుళ వాదనలతో ఆపరేటర్

మేము మునుపటి $లేదా ఆపరేటర్ ప్రశ్నలలో రెండు ఆర్గ్యుమెంట్‌లను అందించాము. ఇక్కడ, మేము $ లేదా ఆపరేటర్ వ్యక్తీకరణగా రెండు కంటే ఎక్కువ ఆర్గ్యుమెంట్‌లను పాస్ చేస్తాము. మేము దానికి ఇచ్చిన 'వయస్సు' ఫీల్డ్ విలువలలో దేనికైనా సరిపోలే పత్రాన్ని తిరిగి పొందుతాము. ఎక్స్‌ప్రెషన్‌లలో ఒకటి నిజం కావాలనే బహుళ వాదనలకు $లేదా ఆపరేటర్ అవసరం ఒకే విధంగా ఉంటుంది. $లేదా ఆపరేటర్‌లో బహుళ ఆర్గ్యుమెంట్‌ల కోసం ప్రశ్న క్రింది విధంగా ఇవ్వబడింది:

db.Patients.find ( { 'అపాయింట్‌మెంట్' : 'కార్డియాలజీ వైద్యుడు' , $లేదా : [ { 'వయస్సు' : ఇరవై } , { 'వయస్సు' : 35 } , { 'వయస్సు' : 69 } ] } )

అక్కడ, మేము $ లేదా ఆపరేటర్ నుండి పొందిన రెండు సరిపోలిన ఫలితాలను కలిగి ఉన్నాము. “35” మరియు “69” ఉన్న “వయస్సు” విలువలు $ లేదా ఆపరేటర్ ద్వారా పొందబడిన మరియు షెల్‌పై ప్రదర్శించబడే “రోగుల” పత్రాలతో పోల్చబడ్డాయి.

ఉదాహరణ 4: మొంగోడిబి $OR అగ్రిగేషన్‌తో ఆపరేటర్

మొంగోడిబిలోని మొత్తం పద్ధతి రికార్డులను సేకరణగా మిళితం చేస్తుంది. అందువలన, వారు వివిధ కార్యకలాపాలకు ఉపయోగించవచ్చు. మేము $లేదా ఆపరేటర్‌ను అగ్రిగేషన్ పద్ధతిలో నిర్వహిస్తాము, ఇది ఒకటి లేదా అంతకంటే ఎక్కువ వ్యక్తీకరణలను మూల్యాంకనం చేస్తుంది మరియు వాటిలో ఏదైనా సరే అని మూల్యాంకనం చేస్తే నిజమైనదిగా చూపుతుంది. లేకపోతే, ప్రకటన తప్పుగా పరిగణించబడుతుంది.

$లేదా అగ్రిగేషన్ ఆపరేటర్ క్వెరీని కలిగి ఉన్నాము, ఇక్కడ మేము మొదట అగ్రిగేట్() పద్ధతిని అమలు చేస్తాము, ఆ తర్వాత $match మరియు $projectని పత్రం నుండి సరిపోల్చాల్సిన _id విలువతో పేర్కొనబడుతుంది. అప్పుడు, మేము 'వయస్సు' ఫీల్డ్‌ను '1' విలువతో సెట్ చేస్తాము ఎందుకంటే ఈ ఫీల్డ్ అన్ని డాక్యుమెంట్‌ల నుండి మాత్రమే రూపొందించబడాలని మేము కోరుకుంటున్నాము. ఆ తర్వాత, మేము $ లేదా ఆపరేషన్‌ని కలిగి ఉన్న “ఫలితాలు” లక్షణాన్ని నిర్వచించాము. $లేదా ఆపరేటర్ $gt యొక్క షరతులతో కూడిన ప్రకటనను తీసుకుంటారు. “$gt:[“$Age”, 69]” వ్యక్తీకరణ “69” కంటే ఎక్కువ విలువ ఉన్న వయస్సును ఇస్తుంది. ఈ వ్యక్తీకరణ యొక్క ఫలితాలు $ లేదా ఆపరేటర్‌కు పంపబడతాయి మరియు $ లేదా ఆపరేటర్ పేర్కొన్న షరతుకు అనుగుణంగా ఉన్న పత్రాన్ని తిరిగి అందజేస్తారు.

db.Patients.మొత్తం (
[
{ $ మ్యాచ్ : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $ప్రాజెక్ట్ : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
వయస్సు: ఒకటి ,
ఫలితం: { $లేదా : [
{ $gt : [ ' $వయస్సు ' , 69 ] }
] }
}
}
]
)

“69” కంటే ఎక్కువ ఉన్న “వయస్సు” “74”, ఇది “నిజమైన” విలువను కలిగి ఉన్న “ఫలితాలు”తో పాటు అవుట్‌పుట్ షెల్‌లో ప్రదర్శించబడుతుంది.

ఉదాహరణ 5: MongoDB $OR ఆపరేటర్ షరతులను ప్రేరేపిస్తుంది

MongoDB యొక్క $ లేదా ఆపరేటర్ లాజికల్ ఆపరేటర్. మేము ఈ లాజికల్ ఆపరేటర్‌ని షరతులతో కూడిన ఆపరేటర్‌తో ఉపయోగించవచ్చు. షరతులు సంతృప్తి చెందినప్పుడు $ లేదా ఆపరేటర్ ఫలితాలను అందిస్తుంది. అదనంగా, మేము $ లేదా ఆపరేటర్‌లో ఒకటి కంటే ఎక్కువ షరతులను అమలు చేయవచ్చు, వాటిలో ఒకటి తప్పక నిజం. ఇక్కడ, మేము రెండు వేర్వేరు షరతులతో పేర్కొనబడిన $ లేదా ఆపరేటర్ యొక్క ప్రశ్నను కలిగి ఉన్నాము. మొదటి షరతు “{ఛార్జీలు:{$lt: 6000}}” ఇది “6000” విలువ కంటే తక్కువ “ఛార్జీలు” ఉన్న పత్రాన్ని అందిస్తుంది. {ఛార్జీలు:'$gt: 7000'} షరతు '7000' విలువ 'ఛార్జీలు' కంటే ఎక్కువ పత్రాన్ని పొందుతుంది.

ఈ షరతులు సంతృప్తి చెందినప్పుడు $లేదా ఆపరేటర్ సరిపోలిన పత్రాన్ని అందిస్తారు. ఆపై, $ లేదా ఆపరేటర్ సరిపోలిన పత్రాన్ని ఇచ్చినప్పుడు మాత్రమే చూపబడే ఫీల్డ్‌ల పేర్లను మేము నిర్దేశిస్తాము.

db.Patients.find ( {
$లేదా : [
{ ఛార్జీలు: { $lt : 6000 } } ,
{ ఛార్జీలు: { $gt : 7000 } }
]
} , {
మొదటి పేరు: ఒకటి ,
ఛార్జీలు: ఒకటి
} )

సరిపోలిన డాక్యుమెంట్‌ల కోసం అవుట్‌పుట్ “ఫస్ట్ నేమ్” మరియు “ఛార్జీలు” ఫీల్డ్‌లను మాత్రమే ప్రదర్శిస్తుంది.

ఉదాహరణ 6: మొంగోడిబి $OR ఆర్గ్యుమెంట్ లేని ఆపరేటర్

$ లేదా ఆపరేటర్‌తో అమలు చేయబడిన అన్ని ప్రశ్నలు ఆర్గ్యుమెంట్ విలువతో పాస్ చేయబడ్డాయి. ఇప్పుడు, మేము ఆర్గ్యుమెంట్ లేని $ లేదా ఆపరేటర్ ప్రశ్నను నిర్వచించాము. ఖాళీ వాదన $ లేదా ఆపరేటర్ ప్రశ్న అమలు చేయబడినప్పుడు, అది తప్పుడు ఫలితాలను మూల్యాంకనం చేస్తుంది. ఖాళీ వ్యక్తీకరణతో $ లేదా ఆపరేషన్ ఎక్కడ పాస్ చేయబడిందో మేము ప్రశ్నను అందిస్తాము.

db.Patients.మొత్తం (
[
{ $ మ్యాచ్ : { _id: { $in : [ ఆబ్జెక్ట్ ఐడి ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $ప్రాజెక్ట్ : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
ఫలితం: { $లేదా : [ ] } }
}
]
)

ఫలితంగా $లేదా ఆపరేటర్‌కు ఖాళీ వాదన అందించబడింది, ఫలితాలు తప్పుడు విలువను సూచిస్తాయి.

ఉదాహరణ 7: MongoDB $OR ఆపరేటర్ అర్రే విలువలతో సరిపోలుతుంది

మేము విభిన్న విలువలను కలిగి ఉన్న పత్రాలలో 'పరీక్ష' శ్రేణిని ఇన్సర్ట్ చేస్తాము. మేము ఫలితాలను పరిశీలించడానికి $ లేదా ఆపరేటర్ కోసం ఆ శ్రేణిని ఉపయోగిస్తాము. కింది ప్రశ్నలోని $లేదా ఆపరేటర్‌ను find() పద్ధతిలో అమలు చేస్తారు. $లేదా ఆపరేటర్ 'పరీక్ష' శ్రేణిని వ్యక్తీకరణగా తీసుకుంటారు. శ్రేణిలోని 'MRI' మరియు 'CT' విలువలతో సరిపోలే ఫీల్డ్ విలువలను గుర్తించడానికి 'టెస్ట్' శ్రేణి $in ఆపరేటర్‌ని ఉపయోగిస్తుంది.

db.Patients.find ( { $లేదా : [ { పరీక్ష: { $in : [ 'MRI' , 'CT' ] } } ] } ) .చక్కని ( )

$లేదా క్వెరీ ఆపరేటర్‌ని అమలు చేసినప్పుడు షెల్‌పై ఒక పత్రం ప్రదర్శించబడుతుంది, ఇది తిరిగి పొందిన పత్రం పేర్కొన్న శ్రేణి విలువలను కలిగి ఉందని చూపుతుంది.

ముగింపు

ఈ MongoDB కథనం రెండు లేదా అంతకంటే ఎక్కువ వ్యక్తీకరణలను కలిగి ఉన్న శ్రేణిలో లాజికల్ OR ఆపరేషన్‌లను అమలు చేయడానికి అలాగే కనీసం ఒక వ్యక్తీకరణకు సరిపోలే పత్రాలను తిరిగి పొందడానికి MongoDB $ లేదా ఆపరేటర్ ప్రశ్నను ఉపయోగిస్తుంది. విభిన్న కార్యకలాపాలను నిర్వహించడానికి $ లేదా ఆపరేటర్‌ను MongoDB షెల్‌లో ప్రశ్నించడం జరిగింది. షరతులతో కూడిన ఆపరేటర్‌లలో $లేదా ఆపరేటర్ వ్యక్తీకరణగా ఉపయోగించబడుతుంది మరియు షరతులతో కూడిన స్టేట్‌మెంట్‌ల ఆధారంగా పత్రాలను అందిస్తుంది.