.Net এ ডাটা এনক্রিপশন

.Net এ ডাটা এনক্রিপশন
——————————–

.Net ডাটা এনক্রিপশন সমর্থন করে থাকে। namespace System.Security.Cryptography এর মধ্যে এনক্রিপশন ফিচার
নিহিত রয়েছে। এনক্রিপশন সংক্রান্ত তিনটি প্রাথমিক বিষয় হল Hashing, Symmetric Encryption এবং Asymmetric
encryption.

– Hash একটি data ফিঙ্গারপ্রিন্ট , যা একটি বৃহৎ data ব্লক এর স্বতন্ত্রতা প্রকাশ করে।

– Symmetric এনক্রিপশন একটি একক key যা এনক্রিপশন ও ডিক্রিপশন উভয়ের জন্য ব্যবহৃত হয়।

– Asymmetric এনক্রিপশনে দুটি ভিন্ন key ব্যবহৃত হয়। একটি এনক্রিপশন ও অপরটি ডিক্রিপশন এর জন্য।

ব্যবহারিক কাজে প্রকৃতপক্ষে অধিকতর নিরাপত্তার জন্য তিনটি প্রক্রিয়াই সমন্বিতভাবে ব্যবহৃত হয়।

Ref:http://salearningschool.com/displayArticle.php?
table=Articles&articleID=135

ডট নেট এ XML প্রোগ্রামিং এর সংক্ষিপ্ত বিবরণ

ডট নেট এ XML প্রোগ্রামিং এর সংক্ষিপ্ত বিবরণ

Faruk Hosen
এক্সএমএল DOM ( ডকুমেন্ট অবজেক্ট মডেল )

ডট নেট এ XML ডকুমেন্ট পড়তে তিনটি উপায় আছে: XML DOM, SAX এবং XML Reader. DOM প্রক্রিয়াকরণের জন্য মেমরির মধ্যে সম্পূর্ণ XML তথ্য লোড করে, এটা উভয় পাঠ্য-লইখ্য, মানে আপনি এক্সএমএল তথ্য পরিবর্তন ও সংরক্ষণ করতে পারবেন। DOM RAM-র মধ্যে তথ্য উপস্থাপন এর জন্য ডেটা স্ট্রাকচার ব্যবহার করে।

 
SAX সব XML তথ্য মেমরিতে লোড করেনা, বরং ক্রমানুশারে প্রসেস করে।

 
SAX শুধু বড় XML ফাইল / ডাটা পড়ার জন্য ভাল কিন্তু যেহেতু এটা RAM-র মধ্যে তথ্য সংরক্ষণ করেনা এবং কোনো তথ্য কাঠামো ব্যবহার করে না, এটি কমপ্লেক্স অপারেশন( সার্চ ) সঞ্চালন করতে পারেনা।

ডট নেট ফ্রেমওয়ার্ক এর XmlReader ক্লাসও XML তথ্য পড়া ও প্রসেস এ ব্যবহার করা যায়। এটা শুধুমাত্র-পড়া এবং শুধুমাত্র-ফরওয়ার্ড করা যায়।
কিভাবে এক্সএমএল DOM কাজ করে ?

একটি XML ডকুমেন্টের রুট নোড XmlDocument প্রতিনিধিত্ব করেন। XmlDocument XmlNode ক্লাস থেকে উদ্ভূত হয়। XmlDocument বিভিন্ন পদ্ধতি প্রদান করে যেমন লোড( ফাইল থেকে লোড এক্সএমএল তথ্য ), LoadXml(লোড প্যারামিটের হিসেবে এক্সএমএল স্ট্রিং নেয়) এবং সংরক্ষণ (একটি ফাইলে এক্সএমএল তথ্য সংরক্ষণ)। উপরন্তু, আপনি XML তথ্য এবং প্রক্রিয়া/মুদ্রণ এর জন্য XmlDocument ব্যবহার করতে পারেন।
http://salearningschool.com/displayArticle.php?table=Articles&articleID=625&isCampaign=1

সি # এ একটি ASP.Net ফরম। পেমেন্ট তথ্য সংগ্রহ ফরম। A form in C#

সি # এ একটি ASP.Net ফরম। পেমেন্ট তথ্য সংগ্রহ ফরম। A form in C#

Faruk Hosen

সি # এ একটি ASP.Net ফরম। পেমেন্ট তথ্য সংগ্রহ ফরম।

অনলাইন পেমেন্ট প্রসেসিং বাস্তবায়নের সময় এই ধরনের ফর্ম টেস্ট অপারেশনে ব্যবহার করা যেতে পারে। ইনপুট ফিল্ডটি পেমেন্ট গেটওয়ে থেকে তথ্য পাঠাতে ব্যবহারিত হয়। রেসপন্স ফিল্ডটি পেমেন্ট গেটওয়ে থেকে প্রতিক্রিয়া প্রদর্শনের জন্য। Paymentech গেটওয়ে দ্বারা প্রেরিত রেসপন্স এখানে আউটপুট ফিল্ড দ্বারা বোঝানো হয়।
ফরমটি এখানে পেতে পারেনঃ http://salearningschool.com/samples/asp.net/c_sharp/form/simpleform.png

<img src=’http://salearningschool.com/samples/asp.net/c_sharp/form/simpleform.png’ />

http://salearningschool.com/displayArticle.php?table=Articles&articleID=1350

ASP.Net ভ্যালিডেশন কন্ট্রোlলের উদাহরণ

ASP.Net ভ্যালিডেশন কন্ট্রোlলের উদাহরণ ঃ

Faruk Hosen

উদাহরনের জন্য নিচের লিঙ্ক থেকে কোড ডাউনলোড করুনঃ http://salearningschool.com/samples/validate.txt

• RequiredFieldValidator : প্রতিটা ফিল্ড পুরন করা হয়েছে কিনা তা পরীক্ষা করতে ব্যবহৃত হয়
• CompareValidator : একটা ফিল্ড এর সাথে আরেকটি ফিল্ড এর সাথে তুলনা করতে ব্যবহৃত হয়
• RangeValidator : ডাটা সমূহ একটি নির্দিষ্ট সীমার মধ্যে তুলনা করার জন্য ব্যবহৃত হয়
• RegularExpressionValidator : ডোমেন নাম সিনট্যাক্স , ইমেইল অ্যাড্রেস সিনট্যাক্স এর জন্য ব্যবহৃত হয়
• ValidationSummary : সকল ভেলিডেশন এরর একটি সংক্ষিপ্ত বাক্সে প্রদর্শন এর জন্য ব্যবহৃত হয়
• CompareValidator : আপনার নিজস্ব ভ্যালিডেশন রুল রাইট এবং এর ফলাফল প্রদর্শন এর জন্য ব্যবহৃত হয়

• মনে রাখতে হবেঃ
 আপনি কন্ট্রল প্যানেলের পাশে এরর প্রদর্শন করতে পারেন
 আপনি কন্ট্রল প্যানেলের নিচে এরর প্রদর্শন করতে পারেন
 টেক্সট প্রপারটি হল আউটপুট যা আসে যেখানে ভ্যালিডেশন কন্ট্রল স্থাপন করা হয় সেখান থেকে। এরর ম্যাসেজ রিপোর্ট হয় ভ্যালিডেশন সামারির জন্য।
 আপনি যদি শুধু ভ্যালিডেশন সামারি আউটপুট চান, তবে ভ্যালিডেশন কন্ট্রল এর জন্য Display=”none” ব্যবহার করুণ (সামারিকন্ট্রল নয়)।

http://salearningschool.com/displayArticle.php?table=Articles&articleID=1325

C – Strings . সি প্রোগ্রামিং এ স্ট্রিং

C – Strings
মোঃ আব্দুল্লাহ
সি প্রোগ্রামিং এ স্ট্রিং হল মুলত এক ডাইমেনশনের array যা কিনা শেষ হয় ‘\0’ বা null character দিয়ে ।
নিম্নের বিবৃতি এবং উদ্ধৃতিটি এমন একটি স্ট্রিং তৈরী করে যা “Hello” স্ট্রিংটি ধারণ করে। array র শেষে null character কে ধারণ করার জন্য array র ধারণক্রিত পদের স্ট্রিং একের মত বড় যেন তা “Hello.” স্ট্রিংটি ধারণ করতে পারে।
char greeting[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};

তুমি যদি array শুরু করার নিয়ম অনুসরণ করতে চাও তবে তুমি উপরের বিবৃতিটি নিম্নরুপে লিখতে পার।
char greeting[] = “Hello”;
উপরের স্ট্রিংটি মেমোরিরে কিভাবে থাকবে তার জন্য নীচের ছবিটি দেখতে পারোঃ

বস্তুত তুমি স্ট্রিং কন্সটান্টের শেষে null characte টিকে স্থাপন কর না। সি কম্পাইলর নিজে থেকে ‘\0’ কে স্ট্রিং এর শেষে স্থাপন করে যখন এটি array initialize করে। চলো উপরের স্ট্রিং কে প্রিন্ট করিঃ
#include <stdio.h>
int main ()
{
char greeting[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};
printf(“Greeting message: %s\n”, greeting );
return 0;
}

যখন উপরের কোডটি কম্পাইল করে রান করা হয় তখন এটি নিম্নোক্ত ফলাফল দেয়ঃ
Greeting message: Hello

সি স্ট্রিং এর জন্য অনেক ফাংসন এর অবলম্বন করে থাকে । নিম্নে তার একটি তালিকা দেওয়া হলঃ
S.N. Function & Purpose
1 strcpy(s1, s2);
স্ট্রিং s2 কে s1 এ কপি করে।
2 strcat(s1, s2);
স্ট্রিং s1 এর শেষে স্ট্রিং s2 কে যুক্ত করে।
3 strlen(s1);
স্ট্রিং s1 এর দৈর্ঘ্য ফেরত পাঠায় ।
4 strcmp(s1, s2);
যদি s1 এবং s2 সমান হয় তবে 0; যদি s1s2 হলে 0 থেকে বেশি ফেরত দেয়।
5 strchr(s1, ch);
ch এর পয়েন্টার ফেরত পাঠায় যখন ch প্রথম স্ট্রিং s1 এ দেখা যায় ।
6 strstr(s1, s2);
স্ট্রিং s1 এর মধ্যে স্ট্রিং s2 প্রথম দেখা যায় তার পয়েন্টেরকে ফেরত দেয়।
নিম্নের উদাহরণটি উপরে দেখানো কিছু ফাংসনের ব্যবহার দেখায়ঃ
#include <stdio.h>
#include <string.h>

int main ()
{
char str1[12] = “Hello”;
char str2[12] = “World”;
char str3[12];
int len ;

/* copy str1 into str3 */
strcpy(str3, str1);
printf(“strcpy( str3, str1) : %s\n”, str3 );

/* concatenates str1 and str2 */
strcat( str1, str2);
printf(“strcat( str1, str2): %s\n”, str1 );

/* total lenghth of str1 after concatenation */
len = strlen(str1);
printf(“strlen(str1) : %d\n”, len );
return 0;
}

যখন উপরের কোডটি কম্পাইল করে এবং রান করা হয়, এটি নিম্নোক্ত ফলাফল দেয়ঃ
strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10

C – Loops

C – Loops
মোঃ আব্দুল্লাহ

কখনো কখনো এমন পরিস্থিতি হতে পারে যে একটি কোড ব্লককে একাধিকবার পরিচালনা করতে হতে পারে। সাধারনত, বিবৃতিগুলি একের পর এক পরিচালিত হয়। একটি ফাংশনের প্রথম বিবৃতিটি প্রথমে পরিচালিত হবে, এরপর দ্বিতীয়টি, তারপর বাকিগুলি।
প্রোগ্রামিং এর ভাষাগুলি বিভিন্ন ধরনের পরিচালনা চক্র অনুসরন করে যা আরো জটিল পরিচালনার পথে পরিচালিত হতে পারে।
লুপ বিবৃতি একটি বিবৃতি বা এক গুচ্ছ বিবৃতিকে একাধিক বার পরিচালনার অনুমুতি দেয় সাধারন উপায়ে সব ধরনের প্রগ্রামিং ভাষায়।

সি প্রোগ্রামিং ভাষা লুপিং চাহিদা পরিপূরণের জন্য নিম্নের ধরনের লুপ দিয়ে থাকে। নিম্নের লিংকগুলি ক্লিক করে এর সম্পর্কে বিস্তারিত জানো।
Loop Type Description
while loop
হওয়াইল লুপ যখন প্রদত্ত যুক্তিটি সত্য তখন এটি একটি বিবৃতি বা এক গুচ্ছ বিবৃতিকে পুনরাবৃত্তি করে। এটি লুপটিকে পরিচালনার আগে বিবৃতিকে পরীক্ষা করে।
for loop
ফর লুপ বিবৃতির ধারা্টিকে একাধিকবার পরিচালনা করে এবং কোডটিকে সংক্ষেপে প্রকাশ করে যা লুপ চলকের ব্যবস্থাপনা করে।
do…while loop
ডু… হওয়াইল লুপ এটি হওয়াইল বিবৃতির মত, শুধু এটি লুপের শেষে যুক্তি পরীক্ষা করে।
nested loops
ডু… হওয়াইল লুপের জন্য তুমি এক বা একাধিক লুপকে যেকোন হওয়াইল লুপের ভিতরে ব্যবহার করতে পার।

Loop Control Statements:

লুপ নিয়ন্ত্রন বিবৃতি সাধারন ধারা থেকে পরিবর্তিত হয়ে পরিচালিত হতে পারে। যখন পরিচালনা একটি সুযোগ রেখে দেয় তখন সব বস্তু যা ওই সুযোগে নিজে থেকে সৃষ্টি হয়েছিল তা ধ্বংস হয়ে যায়।
সি নিম্নোক্ত নিয়ন্ত্রন বিবৃতিকে সমর্থন করে। নিম্নের লিঙ্কটিকে ক্লিক করে এর সম্পর্কে বিস্তারিত জানো।
Control Statement Description
break statement
ব্রেক বিবৃতি এটি লুপকে শেষ বা বিবৃতিকে পরিবর্তন করে । লুপ বা সুইচকে অনুসরণ করে বিবৃতিকে সঙ্গে সঙ্গে পরিচালনা করে।
continue statement
কনটিনিউ বিবৃতি এটি লুপকে এর অবশিষ্ট অংশকে টপকে এবং সঙ্গে সঙ্গে এর আগের যুক্তিতে ফেরত যেতে সাহায্য করে।
goto statement
গো টু বিবৃতি লেবেলেড বিবৃতিতে পরিবর্তনকে নিয়ন্ত্রণ করে। যদিও গো টু বিবৃতিতে প্রোগ্রামটিকে পরিবর্তন করার উপদেশ দেওয়া হয় না।

The Infinite Loop:
যদি কোন যুক্তি কখনও মিথ্যা না হয় তবে লুপটি ইনফিনিট লুপ হয়। এর জন্য ফর লুপটি ব্যবহৃত হয়। যদিও এই তিনটি এক্সপ্রেশনের একটিও ফর লুপের জন্য প্রয়োজন হয় না, তবুও তুমি একটি স্থায়ী লুপ বানাতে পার নির্ভরশীল এক্সপ্রেশনকে খালি রেখে।
#include <stdio.h>
int main ()
{
for( ; ; )
{
printf(“This loop will run forever.\n”);
}
return 0;
}

যখন নির্ভরশীল এক্সপ্রেসন অনুপস্থিত থাকে, তখন একে সত্যি ধরে নেয়া হয়। তোমার একটি প্রস্তুতিমূলক বা ক্রমবৃদ্ধি এক্সপ্রেশন থাকতে পারে , কিন্তু সি প্রোগ্রাম বেশিরভাগ ক্ষেত্রে ফর (;;) বানানোর জন্য ইনফিনিট লুপকে প্রকাশ করে।

C – Program Structure . একটি সি প্রোগ্রাম মূলত নিম্নলিখিত অংশ নিয়ে গঠিত

স্বাগতম আমাদের সাইটে আসার জন্য
আমরা এখানে সি প্রোগ্রাম নিয়ে আলোচনা করব। যেখানে আপনি সহজে জানতে পারবেন কিভাবে আমরা একটি প্রোগ্রাম চালু করতে পারব। আমরা সি এর মুল শেখার আগে আসুন একটি সহজ প্রোগ্রাম চালু করি।
একটি সি প্রোগ্রাম মূলত নিম্নলিখিত অংশ নিয়ে গঠিত:
১. পূর্ব প্রক্রিয়া নির্দেশ
২. কার্যাবলী/ ফাংশন
৩. চলক / Variables
৪. বিবৃতি ও প্রকাশ
৫. মন্তব্য / Comments
আসুন এবার আমরা জেনে নেই কিভাবে আমরা একটি সহজ প্রোগ্রাম চালু করব। প্রোগ্রামটি “Hello World” নামে পরিচিত।
#include <stdio.h>

int main()
{
/* my first program in C */
printf(“Hello, World! \n”);

return 0;
}

আসুন জেনে নেই এই উপরোক্ত প্রোগ্রামে কি কি কোড আছেঃ
• #include<stdio.h> কে হেডার ফাইল বলা হয়। এটাকে আবার একটি সি কম্পাইলার বলে।
• Int main () বলতে প্রোগ্রামের প্রধান ফাংশন কে বুঝায়।
• পরের লাইন /*…*/ কম্পাইলার এটাকে এড়িয়ে যাবে এবং এটি প্রোগ্রামের মধ্যে অতিরিক্ত মন্তব্য যোগ করা হয়েছে. সাধারনত এটি প্রোগ্রামটি অন্যকে বুঝাতে ব্যবহার করা হয়।
• Printf(“—”); এর ভিতরে — এর বদলে আপনি যা লিখবেন সবই আপনার মনিটরের পর্দায় প্রিন্ট হবে।
• Return 0 নির্দেশনাটি আবার প্রোগ্রামটিকে 0 মান অথবা মুল্য তে নিয়ে যাবে।
সি প্রোগ্রাম সঙ্কলন ও সম্পাদন করা:
একটি ফাইলের মধ্যে সোর্স কোড সংরক্ষণ করতে, এবং কিভাবে কম্পাইল এবং এটি চালানোর জন্য কিভাবে তাকান করতে দেয়. নিম্নলিখিত সহজ ধাপ আছেঃ

• একটি টেক্সট এডিটর খুলুন যেখানে আপনি উপরে উল্লিখিত কোড লিখবেন।
• hello.c লিখে ফাইলটি সেভ করেন।

• একটি কমান্ড প্রম্পট খুলুন এবং আপনি ফাইলটি সংরক্ষণ করে রাখেন আপনার পছন্দের ড্রাইভে।
• gcc hello.c লিখে এন্টার বাটন প্রেস করে আপনার কম্পাইল কোড গুলো লিখুন।
• আপনার কোড মধ্যে কোন ত্রুটি আছে কমান্ড প্রম্পট পরের লাইন নিতে হবে a.out এবং এক্সিকিউটেবল ফাইল তৈরি হবে।
• এখন, আপনার প্রোগ্রাম চালানো a.out টাইপ করুন।
• এখন আপনি “হ্যালো ওয়ার্ল্ড” দেখতে পাবেন।
• $ gcc hello.c
• $ ./a.out
• Hello, World!

জিসিসি কম্পাইলার কে আপনার ফাইলটির স্থান দেখিয়ে দিন যাতে আপনার সংরক্ষিত সোর্স ফাইলটি , hello.c চালু হয়।

MongoDB Sort Documents . MongoDB ডকুমেন্ট বাছাই

MongoDB ডকুমেন্ট বাছাই
নয়ন চন্দ্র দত্ত

sort() পদ্ধতি
MongoDB ডকুমেন্ট বাছাই করতে হলে আপনাকে sort() পদ্ধতি ব্যবহার করতে হবে। ক্ষেত্র তালিকা ধারণকারী এবং তাদের বাছাই ক্রমের সঙ্গে, sort() পদ্ধতি ডকুমেন্ট গ্রহণ করে।
বাছাই প্রক্রিয়া উল্লেখ করার জন্য 1 এবং -1 ব্যবহৃত হয়। 1 ক্রম ঊর্ধ্বগামীতার জন্য ব্যবহার করা হয় যখন -1 অধোগামীর জন্য ব্যবহৃত হয়।

সিনট্যাক্সঃ
sort() পদ্ধতির বেসিক সিনট্যাক্স বা বাক্য গঠন নিম্নরূপঃ

>db.COLLECTION_NAME.find().sort({KEY:1})

উদাহরণঃ
কালেকশন myycol এ নিম্নলিখিত তথ্য আছে বিবেচনা করিঃ

{ “_id” : ObjectId(5983548781331adf45ec5), “title”:”MongoDB Overview”}
{ “_id” : ObjectId(5983548781331adf45ec6), “title”:”NoSQL Overview”}
{ “_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point Overview”}

উপরের উদাহরণটিতে অধোগামীতায় টাইটেল হিসেবে ডকুমেন্ট প্রদর্শন করবেঃ

>db.mycol.find({},{“title”:1,_id:0}).sort({“title”:-1})
{“title”:”Tutorials Point Overview”}
{“title”:”NoSQL Overview”}
{“title”:”MongoDB Overview”}
>

দয়া করে মনে রাখবেন, আপনি যদি বাছাই প্রক্রিয়া উল্লেখ না করেন তাহলে sort() পদ্ধতি ক্রম ঊর্ধ্বগামী হিসেবে ডকুমেন্ট প্রদর্শন করবে।

MongoDB Update Document

MongoDB আপডেট ডকু্মেন্ট
নয়ন চন্দ্র দত্ত

MongoDB এর update() এবং save() পদ্ধতি একটি কালেকশনে ডকুমেন্ট আপডেট করতে ব্যবহৃত হয়। যখন save() পদ্ধতি বিদ্যমান নথি save() পদ্ধতি্র মধ্যে গৃহীত ডকুমেন্ট সাথে প্রতিস্থাপন করে
তখন update() পদ্ধতি বিদ্যমান ডকুমেন্ট এর value বা মানকে আপডেট করে।

MongoDB update() পদ্ধতি
update() পদ্ধতি বিদ্যমান ডকুমেন্টের মানকে আপডেট করে।

সিনট্যাক্স:
update() পদ্ধতির বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

উদাহরণঃ
চলুন নিম্নলিখিত তথ্যের সাথে myycol কালেকশনটি বিবেচনা করিঃ

{ “_id” : ObjectId(5983548781331adf45ec5), “title”:”MongoDB Overview”}
{ “_id” : ObjectId(5983548781331adf45ec6), “title”:”NoSQL Overview”}
{ “_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point Overview”}

নিম্নলিখিত উদাহরণটি ‘MongoDB Overview’ ডকুমেন্টের নতুন টাইটেল ‘New MongoDB Tutorial’ সেট করবে ।

>db.mycol.update({‘title’:’MongoDB Overview’},{$set:{‘title’:’New MongoDB Tutorial’}})
>db.mycol.find()
{ “_id” : ObjectId(5983548781331adf45ec5), “title”:”New MongoDB Tutorial”}
{ “_id” : ObjectId(5983548781331adf45ec6), “title”:”NoSQL Overview”}
{ “_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point Overview”}
>

ডিফল্টভাবে mongodb শুধুমাত্র সিঙ্গেল ডকুমেন্ট আপডেট করে। অধিক ডকুমেন্ট আপডেট করতে হলে আপনাকে একটি প্যারামিটার ( ‘multi’ true ) যোগ করতে হবে।
যেমন-

title’:’MongoDB Overview’},{$set:{‘title’:’New MongoDB Tutorial’}},{multi:true})

MongoDB Save() পদ্ধতি
save() পদ্ধতি বিদ্যমান ডকুমেন্ট save() পদ্ধতির মধ্যে গৃহীত নতুন ডকুমেন্টের সাথে প্রতিস্থাপন করে।

সিনট্যাক্স:
save() পদ্ধতির বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

উদাহরণঃ
নিম্নলিখিত উদাহরণটি _id ‘5983548781331adf45ec7’ এর সঙ্গে ডকুমেন্টটিকে প্রতিস্থাপন করবে।

>db.mycol.save(
{
“_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point New Topic”, “by”:”Tutorials Point”
}
)
>db.mycol.find()
{ “_id” : ObjectId(5983548781331adf45ec5), “title”:”Tutorials Point New Topic”, “by”:”Tutorials Point”}
{ “_id” : ObjectId(5983548781331adf45ec6), “title”:”NoSQL Overview”}
{ “_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point Overview”}
>

মংগোডিবি – কুয়েরি ডোকুমেন্ট (MongoDB – Query Document)

MongoDB অনুসন্ধানমূলক বা Query ডকুমেন্ট

নয়ন চন্দ্র দত্ত

 

 

find() পদ্ধতি

MongoDB collection ডেটা অনুসন্ধান করতে আপনাকে MongoDB এর find() পদ্ধতি ব্যবহার করতে হবে।

 

সিনট্যাক্সঃ

find()  এর বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

 

>db.COLLECTION_NAME.find()

 

find() পদ্ধতি সবগুলো ডকুমেন্টকে একটি অ-কাঠামোগত ভাবে প্রদর্শন করবে।

 

 

 

 

pretty() পদ্ধতি

সুবিন্যস্তভাবে ফলাফল প্রদর্শন করার জন্য pretty() পদ্ধতি ব্যবহার করতে পারেন।

 

সিনট্যাক্সঃ

 

>db.mycol.find().pretty()

 

 

উদাহণঃ

 

>db.mycol.find().pretty()

{

“_id”: ObjectId(7df78ad8902c),

“title”: “MongoDB Overview”,

“description”: “MongoDB is no sql database”,

“by”: “tutorials point”,

“url”: “http://www.tutorialspoint.com”,

“tags”: [“mongodb”, “database”, “NoSQL”],

“likes”: “100”

}

>

 

 

 

find() পদ্ধতি ছাড়াও এখানে findOne() পদ্ধতিও আছে যা শুধুমাত্র একটি ডকুমেন্টকে পুনরায় ধাবিত করে।

 

 

 

 

 

MongoDB এর মধ্যে RDBMS যেখানে Clause বা ধারা সমতুল্য

কিছু অবস্থার ভিত্তিতে ডকুমেন্ট অনুসন্ধান করতে আপনি নিম্নলিখিত অপারেশন ব্যবহার করতে পারেন।

 

অপারেশনঃ সমতা

সিনট্যাক্সঃ {<key>:<value>}

উদাহণঃ db.mycol.find({“by”:”tutorials point”}).pretty()

RDBMS সমতুল্যতাঃ যেখানে by = ‘tutorials point’

 

অপারেশনঃ ছোট

সিনট্যাক্সঃ {<key>:{$lt:<value>}}

উদাহণঃ db.mycol.find({“likes”:{$lt:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes < 50

 

অপারেশনঃ সমান বা ছোট

সিনট্যাক্সঃ {:{$lte:}}

উদাহণঃ db.mycol.find({“likes”:{$lte:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes <= 50

 

অপারেশনঃ বড়

সিনট্যাক্সঃ {<key>:{$gt:<value>}}

উদাহণঃ db.mycol.find({“likes”:{$gt:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes > 50

 

অপারেশনঃ সমান বা বড়

সিনট্যাক্সঃ {:{$gte:}}

উদাহণঃ db.mycol.find({“likes”:{$gte:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes >= 50

 

অপারেশনঃ অসমান

সিনট্যাক্সঃ {:{$ne:}}

উদাহণঃ db.mycol.find({“likes”:{$ne:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes != 50

 

 

 

 

 

MongoDB তে AND

সিনট্যাক্সঃ

find() পদ্ধতিতে যদি আপনি একাধিক কী ( ‘,’ )দিয়ে পৃথক করে পাস করেন তাহলে MongoDB এটাকে AND শর্তের ন্যায় আচরন করায়। AND এর বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

 

>db.mycol.find({key1:value1, key2:value2}).pretty()

 

 

উদাহণ

উল্লিখিত নীচের উদাহরণটি ‘tutorials point’ দ্বারা লিখিত সব টিউটোরিয়াল এবং যার টাইটেল ‘MongoDB Overview’  প্রদর্শন করবে।

 

>db.mycol.find({“by”:”tutorials point”,”title”: “MongoDB Overview”}).pretty()

{

“_id”: ObjectId(7df78ad8902c),

“title”: “MongoDB Overview”,

“description”: “MongoDB is no sql database”,

“by”: “tutorials point”,

“url”: “http://www.tutorialspoint.com”,

“tags”: [“mongodb”, “database”, “NoSQL”],

“likes”: “100”

}

>

 

 

 

উপরে উল্লিখিত উদাহরণটি সমান হবে যেখানে clause টি ‘ where by=’tutorials point’ AND title=’MongoDB Overview’  হবে।

 

 

 

 

 

 

MongoDB তে OR

সিনট্যাক্সঃ

OR শর্তের উপর ভিত্তি করে ডকুমেন্ট খোজতে আপনাকে $or কীওয়ার্ড ব্যবহার করতে হবে। OR এর বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

 

>db.mycol.find(

{

$or: [

{key1: value1}, {key2:value2}

]

}

).pretty()

 

 

 

উদাহণ

উল্লিখিত নীচের উদাহরণটি ‘tutorials point’ দ্বারা লিখিত সব টিউটোরিয়াল এবং যার টাইটেল ‘MongoDB Overview’  প্রদর্শন করবে।

 

 

>db.mycol.find({$or:[{“by”:”tutorials point”},{“title”: “MongoDB Overview”}]}).pretty()

{

“_id”: ObjectId(7df78ad8902c),

“title”: “MongoDB Overview”,

“description”: “MongoDB is no sql database”,

“by”: “tutorials point”,

“url”: “http://www.tutorialspoint.com”,

“tags”: [“mongodb”, “database”, “NoSQL”],

“likes”: “100”

}

>

 

 

 

 

একত্রে AND এবং OR  এর ব্যবহার

উদাহণঃ

উল্লিখিত নীচের উদাহরণটি ১০০ এর চেয়ে বড় এবং যার টাইটেল ‘MongoDB Overview’ বা ‘tutorials point’ । এসকিউএল সমান হবে যেখানে ‘where likes>10 AND (by = ‘tutorials point’ OR title = ‘MongoDB Overview’)’  । যেমনঃ-

 

>db.mycol.find(“likes”: {$gt:10}, $or: [{“by”: “tutorials point”}, {“title”: “MongoDB Overview”}] }).pretty()

{

“_id”: ObjectId(7df78ad8902c),

“title”: “MongoDB Overview”,

“description”: “MongoDB is no sql database”,

“by”: “tutorials point”,

“url”: “http://www.tutorialspoint.com”,

“tags”: [“mongodb”, “database”, “NoSQL”],

“likes”: “100”

}

>

 

 

 

http://Bangla.SaLearningSchool.com