MongoDB বা অপারেটর

Mongodb Ba Aparetara



আমাদের কাছে বিভিন্ন লজিক্যাল ক্যোয়ারী অপারেটর রয়েছে যা MongoDB-তে পাওয়া যায় এবং তাদের মধ্যে একটি হল $বা অপারেটর। MongoDB $or অপারেটর একটি অ্যারেতে একটি লজিক্যাল OR অপারেশন বাস্তবায়ন করতে ব্যবহৃত হয় যাতে দুটি বা ততোধিক এক্সপ্রেশন থাকে এবং শুধুমাত্র সেই ডকুমেন্টগুলি পুনরুদ্ধার করা হয় যা অ্যারের নির্দিষ্ট এক্সপ্রেশনগুলির যেকোনো একটির সাথে মেলে। $অর অপারেটরটি শুধুমাত্র একটি মিলিত নথির মানদণ্ডের সাথে একটি একক প্রশ্নের একাধিক বিবৃতি খুঁজে পেতে ব্যবহার করা হয়। $or অপারেটর বিভিন্ন কী এবং মানের সমন্বয়ের সুবিধা দেয়।

MongoDB-তে OR অপারেটর কীভাবে ব্যবহার করবেন

MongoDB-তে OR অপারেটরকে '$or' বিন্যাসে উপস্থাপন করা হয়। '$or' বর্গাকার বন্ধনীতে একাধিক এক্সপ্রেশনকে আবদ্ধ করতে ব্যবহৃত হয় যার উপর লজিক্যাল OR অপারেশন করা হয়। আমরা MongoDB সংগ্রহে $বা অপারেটর ব্যবহার করি। আমরা MongoDB সংগ্রহ তৈরি করি যার শিরোনাম 'রোগী'। 'রোগীদের' সংগ্রহটি একাধিক নথির সাথে সন্নিবেশ করা হয় যার উপর আমরা $অথবা অপারেটর সম্পাদন করি। InsertMany() পদ্ধতি ব্যবহার করে MongoDB-তে নিম্নলিখিত নথি ঢোকানো হয়েছে:

db.Patients.insertMany ( [
{
'নামের প্রথম অংশ' : 'জেনিফার' ,
'নামের শেষাংশ' : 'জোশুয়া' ,
'বয়স' : 44 ,
'ফোন নম্বর' : 43400517 ,
'অ্যাপয়েন্টমেন্ট' : 'দন্ত চিকিৎসক' ,
'চার্জ' : 2000 ,
'পরীক্ষা' : [ 'এক্স-রে' , 'রক্ত' , 'পুপাল' ]
} ,
{
'নামের প্রথম অংশ' : 'থমাস' ,
'নামের শেষাংশ' : 'স্টিভেন' ,
'বয়স' : 74 ,
'ফোন নম্বর' : 39034694 ,
'সাক্ষাৎকারের তারিখ' : 'সার্জন' ,
'চার্জ' : 6000 ,
'পরীক্ষা' : [ 'নির্বাচনী' , 'PPT' ]
} ,
{
'নামের প্রথম অংশ' : 'চার্লস' ,
'নামের শেষাংশ' : 'ড্যানিয়েল' ,
'বয়স' : 35 ,
'ফোন নম্বর' : 65712165 ,
'অ্যাপয়েন্টমেন্ট' : 'কার্ডিওলজি চিকিৎসক' ,
'চার্জ' : 2000 ,
'পরীক্ষা' : [ 'সিটি' , 'এমআরআই' ]
} ,
{
'নামের প্রথম অংশ' : 'মিশেল' ,
'নামের শেষাংশ' : 'পল' ,
'বয়স' : 51 ,
'ফোন নম্বর' : 54399288 ,
'অ্যাপয়েন্টমেন্ট' : 'চর্মরোগ বিশেষজ্ঞ' ,
'চার্জ' : 8000 ,
'পরীক্ষা' : [ 'স্কিন বায়োপসি' , 'কাঠের আলো' , 'ত্বক স্ক্র্যাপিং' ]
} ,

{
'নামের প্রথম অংশ' : 'এন্ড্রু' ,
'নামের শেষাংশ' : 'জেরি' ,
'বয়স' : ৬৯ ,
'ফোন নম্বর' : 6108100 ,
'অ্যাপয়েন্টমেন্ট' : 'কার্ডিওলজি চিকিৎসক' ,
'চার্জ' : 7000 ,
'পরীক্ষা' : [ 'ইসিজি' , 'রক্তে গ্লুকোজ' , 'আল্ট্রাসাউন্ড' ]
}
] )

পূর্বে-ঢোকানো নথির আউটপুট 'সত্য' স্বীকার করে এবং প্রতিটি নথির জন্য 'ঢোকানো আইডি' মান প্রদান করে।









উদাহরণ 1: MongoDB $OR অপারেটর যাতে ডকুমেন্টের সাথে মিলে যায়

MongoDB $অর অপারেটরের প্রাথমিক প্রশ্ন এখানে প্রয়োগ করা হয়েছে যা MongoDB-তে এই অপারেটরের কাজ প্রদর্শন করে। এখানে, আমরা find() মেথড দিয়ে একটি কোয়েরি সংজ্ঞায়িত করি। Find() পদ্ধতিটি $অর অপারেটরের সাথে আরও নির্দিষ্ট করা হয়েছে। $অর অপারেটর দুটি ক্ষেত্র নেয়, 'অ্যাপয়েন্টমেন্ট' এবং 'চার্জস', যা মান দিয়ে বরাদ্দ করা হয়। $or অপারেটর ক্ষেত্রের মানের সাথে মেলে এবং শুধুমাত্র সেই নথিগুলি পুনরুদ্ধার করে যার মানগুলি ক্ষেত্রের মানের সাথে মিলে যায়। $অথবা অপারেটরের ক্যোয়ারী স্ট্রাকচার নিচে দেওয়া আছে:



db.Patients.find ( { $ বা : [ { নিয়োগ: 'চর্মরোগ বিশেষজ্ঞ' } ,
{ চার্জ: 7000 } ] } ) .সুন্দর ( )

আমরা সেই নথিগুলি নিয়ে আসি যার 'অ্যাপয়েন্টমেন্ট' 'চর্মরোগ বিশেষজ্ঞ' এর সাথে এবং যার 'চার্জ' '7000'। $অর অপারেটর উভয় ক্ষেত্রের মান থেকে সত্য ফলাফল খুঁজে পায় এবং আউটপুটে মিলে যাওয়া নথি ফেরত দেয়।





উদাহরণ 2: মঙ্গোডিবি $OR অপারেটর অ-অস্তিত্বশীল নথির সাথে মেলে

$অথবা অপারেটরের পূর্ববর্তী ক্যোয়ারীতে, আমরা মিলে যাওয়া নথিগুলি নিয়ে এসেছি। এখন, আমরা 'রোগী' সংগ্রহ থেকে অস্তিত্বহীন নথি পুনরুদ্ধার করি। নিম্নলিখিত $অথবা অপারেটর ক্যোয়ারীটি সেই নথিটি নেয় যার 'প্রথম নাম' হল 'চার্লস' এবং 'চিকিৎসক' এর সাথে 'অ্যাপয়েন্টমেন্ট'। $বা অপারেটর 'রোগীদের' সংগ্রহের মধ্যে এই ফিল্ড মানগুলির সাথে মেলে এবং ম্যাচ করার পরে ফলাফলগুলি তৈরি করে৷



db.Patients.find ( { $ বা : [ { 'নামের প্রথম অংশ' : 'চার্লস' } , { 'অ্যাপয়েন্টমেন্ট' : 'চিকিৎসক' } ] } ) .সুন্দর ( )

$or অপারেটরের একটি সত্য ফলাফল এবং অন্যটির একটি মিথ্যা ফলাফল রয়েছে। যেমন আমরা 'চিকিৎসক' মান সহ 'অ্যাপয়েন্টমেন্ট' নির্দিষ্ট করি যা 'রোগী' সংগ্রহের কোনো নথির সাথে মেলে না। তাই, $অথবা অপারেটর শুধুমাত্র মিলিত ক্ষেত্রের নথিটি ফেরত দেয় যা আউটপুট হিসাবে 'পেশেন্ট'।

উদাহরণ 3: MongoDB $OR একাধিক আর্গুমেন্ট সহ অপারেটর

আমরা আগের $অথবা অপারেটর প্রশ্নে দুটি আর্গুমেন্ট দিয়েছি। এখানে, আমরা $বা অপারেটর এক্সপ্রেশন হিসাবে দুটির বেশি আর্গুমেন্ট পাস করি। আমরা নথিটি পুনরুদ্ধার করি যা এটিকে দেওয়া 'বয়স' ক্ষেত্রের মানগুলির সাথে মেলে। $বা অপারেটরের প্রয়োজনীয়তা একাধিক আর্গুমেন্টের জন্য একই যে এক্সপ্রেশনগুলির একটি সত্য হওয়া উচিত। $বা অপারেটরে একাধিক আর্গুমেন্টের জন্য ক্যোয়ারী নিম্নরূপ দেওয়া হয়েছে:

db.Patients.find ( { 'অ্যাপয়েন্টমেন্ট' : 'কার্ডিওলজি চিকিৎসক' , $ বা : [ { 'বয়স' : বিশ } , { 'বয়স' : 35 } , { 'বয়স' : ৬৯ } ] } )

সেখানে, আমাদের কাছে দুটি মিলে যাওয়া ফলাফল রয়েছে যা $বা অপারেটর থেকে পাওয়া যায়। '35' এবং '69' 'বয়স' মানগুলি 'রোগীদের' নথিগুলির সাথে তুলনা করা হয় যা $ বা অপারেটর দ্বারা প্রাপ্ত হয় এবং শেলে প্রদর্শিত হয়।

উদাহরণ 4: MongoDB $OR সমষ্টি সহ অপারেটর

MongoDB-তে সামগ্রিক পদ্ধতি রেকর্ডগুলিকে একটি সংগ্রহে একত্রিত করে। অতএব, তারা বিভিন্ন অপারেশন জন্য ব্যবহার করা যেতে পারে. আমরা $অথবা অপারেটরকে একত্রিতকরণ পদ্ধতিতে সম্পাদন করি যা এক বা একাধিক অভিব্যক্তিকে মূল্যায়ন করে এবং তাদের মধ্যে যেকোনও সত্যে মূল্যায়ন করলে সত্য ফেরত দেয়। অন্যথায়, বিবৃতি মিথ্যা হিসাবে গণ্য করা হয়.

আসুন $অথবা অ্যাগ্রিগেশন অপারেটর ক্যোয়ারী করি যেখানে আমরা প্রথমে aggregate() পদ্ধতি ব্যবহার করি যা তারপর $match এবং $project স্থাপন করে যা নথি থেকে মিলানোর জন্য _id মান দিয়ে নির্দিষ্ট করা হয়। তারপর, আমরা '1' এর মান সহ 'বয়স' ক্ষেত্রটি সেট করি কারণ আমরা কেবলমাত্র এই ক্ষেত্রটি সমস্ত নথি থেকে তৈরি করতে চাই। এর পরে, আমরা 'ফলাফল' বৈশিষ্ট্যটি সংজ্ঞায়িত করি যার $বা অপারেশন রয়েছে। $or অপারেটর $gt এর শর্তসাপেক্ষ বিবৃতি নেয়। '$gt:['$Age', 69]' অভিব্যক্তিটি সেই বয়সকে দেয় যার মান '69' এর থেকে বেশি৷ এই অভিব্যক্তির ফলাফল $or অপারেটরের কাছে পাঠানো হয় এবং $or অপারেটর নির্দিষ্ট শর্ত পূরণ করে এমন নথি ফেরত দেয়।

db.Patients.aggregate (
[
{ $ ম্যাচ : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $প্রকল্প : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
বয়স: এক ,
ফলাফল: { $ বা : [
{ $gt : [ ' $বয়স ' , ৬৯ ] }
] }
}
}
]
)

'69' এর থেকে বড় 'বয়স' হল '74' যা আউটপুট শেলে 'ফলাফল' এর সাথে প্রদর্শিত হয় যার 'সত্য' মান রয়েছে।

উদাহরণ 5: MongoDB $OR অপারেটর শর্তাবলী আহ্বান করে

MongoDB-এর $or অপারেটর হল একটি লজিক্যাল অপারেটর। আমরা শর্তসাপেক্ষ অপারেটরের সাথে এই লজিক্যাল অপারেটর ব্যবহার করতে পারি। শর্ত সন্তুষ্ট হলে $or অপারেটর ফলাফল প্রদান করে। উপরন্তু, আমরা $অথবা অপারেটরে একাধিক শর্ত আহ্বান করতে পারি যেখান থেকে একটি সত্য হতে হবে। এখানে, আমাদের কাছে $অথবা অপারেটরের একটি প্রশ্ন রয়েছে যা দুটি ভিন্ন শর্তের সাথে নির্দিষ্ট করা হয়েছে। প্রথম শর্তটি হল '{চার্জ:{$lt: 6000}}' যা '6000' এর 'চার্জ' মানের চেয়ে কম নথি প্রদান করে। {Charges:'$gt: 7000'} শর্তটি নথিটি পায় যা '7000' এর 'চার্জ' মানের থেকে বেশি।

এই শর্তগুলি সন্তুষ্ট হলে $অর অপারেটর মিলে যাওয়া নথি দেয়৷ তারপর, আমরা ক্ষেত্রগুলির নাম উল্লেখ করি যেগুলি শুধুমাত্র দেখানো হয় যখন $অথবা অপারেটর মিলে যাওয়া নথি দেয়।

db.Patients.find ( {
$ বা : [
{ চার্জ: { $lt : 6000 } } ,
{ চার্জ: { $gt : 7000 } }
]
} , {
নামের প্রথম অংশ: এক ,
চার্জ: এক
} )

আউটপুট মিলিত নথিগুলির জন্য শুধুমাত্র 'প্রথম নাম' এবং 'চার্জ' ক্ষেত্রগুলি প্রদর্শন করে।

উদাহরণ 6: MongoDB $OR অপারেটর যার কোন যুক্তি নেই

$বা অপারেটরের সাথে সমস্ত বাস্তবায়িত প্রশ্ন আর্গুমেন্ট মান দিয়ে পাস করা হয়। এখন, আমরা $অথবা অপারেটর কোয়েরি সংজ্ঞায়িত করি যা কোন যুক্তি ইনপুট করে না। যখন খালি আর্গুমেন্ট $বা অপারেটর ক্যোয়ারী কার্যকর করা হয়, তখন এটি মিথ্যা ফলাফলের মূল্যায়ন করে। আমরা একটি ক্যোয়ারী দিই যেখানে $বা অপারেশন খালি এক্সপ্রেশন দিয়ে পাস করা হয়।

db.Patients.aggregate (
[
{ $ ম্যাচ : { _id: { $in : [ অবজেক্ট আইডি ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $প্রকল্প : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
ফলাফল: { $ বা : [ ] } }
}
]
)

$অর অপারেটর একটি খালি যুক্তি দিয়ে সরবরাহ করা হয় ফলে, ফলাফল একটি মিথ্যা মান রাষ্ট্র.

উদাহরণ 7: MongoDB $OR অপারেটর অ্যারে মানগুলির সাথে মেলে

বিভিন্ন মান আছে এমন নথিতে আমরা 'পরীক্ষা' অ্যারে সন্নিবেশ করি। আমরা ফলাফলগুলি পরীক্ষা করার জন্য $অথবা অপারেটরের জন্য সেই অ্যারেটি ব্যবহার করি। নিম্নলিখিত ক্যোয়ারীতে $অর অপারেটরটি find() পদ্ধতির ভিতরে আহ্বান করা হয়েছে। $or অপারেটর 'Test' অ্যারেটিকে একটি এক্সপ্রেশন হিসেবে নেয়। 'পরীক্ষা' অ্যারে $in অপারেটর ব্যবহার করে নথিগুলি সনাক্ত করতে যার ক্ষেত্রের মান অ্যারের 'MRI' এবং 'CT' মানগুলির সাথে মেলে।

db.Patients.find ( { $ বা : [ { পরীক্ষা: { $in : [ 'এমআরআই' , 'সিটি' ] } } ] } ) .সুন্দর ( )

$অথবা ক্যোয়ারী অপারেটর চালানো হলে একটি নথি শেলে প্রদর্শিত হয় যা দেখায় যে পুনরুদ্ধার করা নথিতে নির্দিষ্ট অ্যারের মান রয়েছে।

উপসংহার

এই MongoDB নিবন্ধটি একটি অ্যারেতে লজিক্যাল OR ক্রিয়াকলাপ চালানোর জন্য একটি MongoDB $ বা অপারেটর ক্যোয়ারী ব্যবহার করে যাতে দুটি বা ততোধিক এক্সপ্রেশন রয়েছে সেইসাথে অন্তত একটি এক্সপ্রেশনের সাথে মেলে এমন নথিগুলি পুনরুদ্ধার করতে। $অর অপারেটরকে বিভিন্ন ক্রিয়াকলাপ সম্পাদন করার জন্য MongoDB শেলে জিজ্ঞাসা করা হয়। $or অপারেটর শর্তসাপেক্ষ অপারেটরগুলিতে একটি অভিব্যক্তি হিসাবে ব্যবহৃত হয় এবং শর্তসাপেক্ষ বিবৃতিগুলির উপর ভিত্তি করে নথি প্রদান করে।