Category Archives: মঙ্গ ডি বি । MongoDB

মংগো ডি বি – ০০১। MongoDB – 001

MongoDB PHP. MongoDB পিএইচপি

MongoDB পিএইচপি

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

 

পিএইচপি এর সঙ্গে MongoDB ব্যবহার করার জন্য আপনাকে MongoDB পিএইচপি ড্রাইভার ব্যবহার করতে হবে। নিচের লিঙ্ক থেকে ড্রাইভারটি ডাউনলোড করে নিনঃ
https://s3.amazonaws.com/drivers.mongodb.org/php/index.html
সর্বশেষ রিলিজ ডাউনলোড করতে ভুলবেন না। এখন আর্কাইভটি আনজিপ করুন এবং আপনার পিএইচপি এক্সটেনশন ডিরেক্টরির ("ext" ডিফল্টভাবে) মধ্যে php_mongo.dll এ এবং নিচের লাইন্টি php.ini এ স্থাপন করুনঃ

extension=php_mongo.dll

একটি সংযোগ তৈ্রী করুন এবং একটি ডাটাবেস নির্বাচন করুন। একটি সংযোগ করতে আপনাকে ডাটাবেসের নাম নির্দিষ্ট করতে হবে, যদি ডেটাবেস উপস্থিত না থাকে তাহলে MongoDB স্বয়ংক্রিয়ভাবে এটি তৈরি করবে।
ডেটাবেসের সাথে সংযোগ করার জন্য কোড স্নিপেট নিম্নরূপ হবেঃ

php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
?>

যখন প্রোগ্রাম নিষ্পন্ন হয় তখন তার ফলাফল নিম্নরূপ হবেঃ

Connection to database successfully
Database mydb selected

কালেকশন তৈরি করা
একটি কালেকশন তৈরি করার জন্য কোড স্নিপেট নিম্নরূপ হবেঃ

php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
$collection = $db->createCollection("mycol");
echo "Collection created succsessfully";
?>

যখন প্রোগ্রাম নিষ্পন্ন হয় তখন তার ফলাফল নিম্নরূপ হবেঃ

Connection to database successfully
Database mydb selected
Collection created succsessfully

ডকুমেন্ট প্রবেশ করান

MongoDB তে একটি ডকুমেন্ট প্রবেশ করাতে হলে insert() পদ্ধতি ব্যবহৃত হয়।
ডকুমেন্ট প্রবেশ করানোর জন্য কোড স্নিপেট নিম্নরূপ হবেঃ

php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
$collection = $db->mycol;
echo "Collection selected succsessfully";
$document = array(
"title" => "MongoDB",
"description" => "database",
"likes" => 100,
"url" => "http://www.tutorialspoint.com/mongodb/",
"by", "tutorials point"
);
$collection->insert($document);
echo "Document inserted successfully";
?>

যখন প্রোগ্রাম নিষ্পন্ন হয় তখন তার ফলাফল নিম্নরূপ হবেঃ

Connection to database successfully
Database mydb selected
Collection selected succsessfully
Document inserted successfully

সব ডকুমেন্ট খুজে পেতে

কালেকশন থেকে সব ডকুমেন্ট সিলেক্ট করতে find() পদ্ধতি ব্যবহৃত হয়।
সব ডকুমেন্ট সিলেক্ট করার জন্য কোড স্নিপেট নিম্নরূপ হবেঃ

<?php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
$collection = $db->mycol;
echo "Collection selected succsessfully";

$cursor = $collection->find();
// iterate cursor to display title of documents
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>

যখন প্রোগ্রাম নিষ্পন্ন হয় তখন তার ফলাফল নিম্নরূপ হবেঃ

Connection to database successfully
Database mydb selected
Collection selected succsessfully
{
"title": "MongoDB"
}

ডকুমেন্ট আপডেট করা

ডকুমেন্ট আপডেট করার জন্য update() পদ্ধতি ব্যবহার করতে হবে।
নিচে দেওয়া উদাহরণে আমরা প্রবেশিত ডকুমেন্টের টাইটেল MongoDB Tutorial এ আপডেট করব।
ডকুমেন্ট আপডেট করার জন্য কোড স্নিপেট নিম্নরূপ হবেঃ

<?php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
$collection = $db->mycol;
echo "Collection selected succsessfully";

// now update the document
$collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB Tutorial")));
echo "Document updated successfully";
// now display the updated document
$cursor = $collection->find();
// iterate cursor to display title of documents
echo "Updated document";
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>

যখন প্রোগ্রাম নিষ্পন্ন হয় তখন তার ফলাফল নিম্নরূপ হবেঃ

Connection to database successfully
Database mydb selected
Collection selected succsessfully
Document updated successfully
Updated document
{
"title": "MongoDB Tutorial"
}

ডকুমেন্ট ডিলিট করা বা মুছে ফেলা

একটি ডকুমেন্ট ডিলিট করতে হলে remove() পদ্ধতি ব্যবহার করতে হবে।
নিচে দেওয়া উদাহরণে আমরা MongoDB Tutorial টাইটেলের ডকুমেন্ট ডিলিট করব।
ডকুমেন্ট ডিলিট করার জন্য কোড স্নিপেট নিম্নরূপ হবেঃ

<?php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
$collection = $db->mycol;
echo "Collection selected succsessfully";

// now remove the document
$collection->remove(array("title"=>"MongoDB Tutorial"),false);
echo "Documents deleted successfully";

// now display the available documents
$cursor = $collection->find();
// iterate cursor to display title of documents
echo "Updated document";
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>

যখন প্রোগ্রাম নিষ্পন্ন হয় তখন তার ফলাফল নিম্নরূপ হবেঃ

Connection to database successfully
Database mydb selected
Collection selected succsessfully
Documents deleted successfully

উপরের দেওয়া উদাহরণে দ্বিতীয় প্যারামিটার বুলিয়ান টাইপের এবং remove() পদ্ধতিতে justOne এর জন্য ব্যবহৃত হয়েছে।
MongoDB পদ্ধতির অবশিষ্ট findOne(), save(), limit(), skip(), sort() ইত্যাদি একইরকম কাজ করে যা উপরের উদাহণে ব্যাখ্যা করা হয়েছে।

MongoDB Create Backup. MongoDB ব্যাকআপ তৈরি করা

MongoDB ব্যাকআপ তৈরি করা

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

 

কি খবর সবার? আশা করছি সবাই ভাল আছেন। আজ আমি হাজির হয়েছি একটি নতুন টিউটোরিয়াল নিয়ে। আজ আমরা দেখব কীভাবে MongoDB ব্যাকআপ তৈরি করা যায়। তাহলে
আর কথা না বাড়িয়ে আজকের টিউটোরিয়াল শুরু করি।

MongoDB তথ্য ডাম্প

MongoDB তে ডেটাবেসের ব্যাকআপ তৈরি করতে আপনাকে mongodump কমান্ড ব্যবহার করতে হবে। এই কমান্ড ডাম্প ডিরেক্টরির মধ্যে আপনার সার্ভারের সব তথ্য ডাম্প করবে।
এখানে অনেক অপশন আছে যা দ্বারা আপনি তথ্যের পরিমাণ সীমাবদ্ধ বা আপনার দূরবর্তী সার্ভারে ব্যাকআপ তৈরি করতে পারেন।

সিনট্যাক্স

mongodump কমান্ড মৌলিক বাক্য গঠন নিম্নরূপঃ
>mongodump

উদাহরণ
আপনার mongod সার্ভার আরম্ভ করুন। অনুমেয় যে আপনার mongod সার্ভার এ লোকালহোস্ট চলমান। এবং পোর্ট 27017 । এখন একটি কমান্ড প্রম্পট খুলুন এবং উদাহরণস্বরূপ আপনার
MongoDB বিন ডিরেক্টরিতে যান এবং mongodump কমান্ড টাইপ করুন। নিম্নলিখিতভাবে mycol collectioin বিবেচনা করুনঃ
>mongodump

কমান্ড 127.0.0.1 এ চলমান সার্ভারের সাথে এবং পোর্ট 27017 সংযোগ করবে এবং ডিরেক্টরিতে আপনার সার্ভারে সব তথ্য ফিরিয়ে আনুন।
এখানে অনেক available অপশন আছে যা Mongodump কমান্ড এর সাথে ব্যবহার করা যেতে পারে। শুধুমাত্র নির্দিষ্ট ডেটাবেসের নির্দিষ্ট পথে এই কমান্ড এ ব্যাকআপ হবে ।

সিনট্যাক্সঃ mongodump --host HOST_NAME --port PORT_NUMBER
বর্ণনাঃ এই কমান্ড উদাহরণস্বরূপ mongod এর সব ডেটাবেস ব্যাকআপ করবে
উদাহরণঃ mongodump --host tutorialspoint.com --port 27017

সিনট্যাক্সঃ mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY
উদাহরণঃ mongodump --dbpath /data/db/ --out /data/backup/

সিনট্যাক্সঃ mongodump --collection COLLECTION --db DB_NAME
বর্ণনাঃ এই কমান্ড উদাহরণস্বরূপ mongod এর সব ডেটাবেস ব্যাকআপ করবে
উদাহরণঃ mongodump --collection mycol --db test

Restore বা তথ্য পুনরুদ্ধার

ব্যাকআপ করতে MongoDB এর mongorestore কমান্ড ব্যবহার করা হয় । এই কমান্ড ব্যাক আপ ডিরেক্টরি থেকে সমস্ত তথ্য পুনরুদ্ধার করবে। Mongorestore এর বেসিক সিনট্যাক্স বা বাক্য
গঠন এর জন্য কমান্ড হচ্ছে-
>mongorestore

আশা করছি সবার ভাল লেগেছে আজকের টিউটোরিয়াল। পরবর্তিতে MongoDB বিষয়ক আরো টিউটোরিয়াল নিয়ে হাজির হব। আজকের মত এই পর্যন্তই আর কোন সমস্যা হলে নিশ্চই কমেন্ট করবেন ।
http://Bangla.SaLearningSchool.com

MongoDB Sharding শেয়ার্ডিং

MongoDB Sharding শেয়ার্ডিং

-পায়েল চৌধুরী

 

শেয়ার্ডিং হল একাধিক মেশিন জুড়ে তথ্য রেকর্ড সংরক্ষণ করার একটি প্রক্রিয়া এবং এটি তথ্য বৃদ্ধির চাহিদা পূরণের করতে MongoDB এর একটি পন্থা. তথ্যের আকার বৃদ্ধির কারণে তথ্য সংরক্ষণের জন্য শুধু এএকক মেশিনে তথ্য সংরক্ষণ করা যেমন হয়তো গ্রহণযোগ্য না হতে পারে, তেমনি মেশিন কতৃক তথ্য পঠন এবং লিখন প্র্রক্রিয়ার হারও পর্যাপ্ত নাও হতে পারে. হরাইজেন্টাল স্কেলিং এর দ্বারা শেয়ার্ডিং এই সমস্যার সমাধান করে, তথ্যের পরিমাণ বৃদ্ধি পেলে মেশিনের সংখ্যা বাড়ানোর মাধ্যমে লিখন এবং পঠন কার্যক্রমের চাহিদা শেয়ার্ডিং এর দ্বারা পূরণ করা যায়.

শেয়ার্ডিং কেন?

• প্র্রতিলিপির জন্য সকল লিখন মাস্টার নড এ যায়
• বিলম্ব সংবেদনশীল প্রশ্ন(Latency sensitive queries) এখনও মাস্টার এ যায়
• একক প্রতিরূপ সেট এ 12 নোড এর সীমাবদ্ধতা আছে
• সক্রিয় ডেটা সেটটি বড় যখন মেমোরির আকার বড় করা সম্ভব না
• স্থানীয় ডিস্ক যথেষ্ট বড় না বা পর্যাপ্ত নয়
• উল্লম্ব আরোহী(Vertical scaling) অত্যন্ত ব্যয়বহুল

মংগোডিবিতে শেয়ার্ডিং (Sharding in MongoDB)

নীচে চিত্র তে sharded ক্লাস্টার ব্যবহার করে মংগোডিবিতে শেয়ার্ডিং দেখানো হল-

উপরে দেওয়া চিত্রে তিনটি প্রধান উপাদান আছে যাদের বর্ণণা নীচে দেয়া হল:

Shards: Shards তথ্য ধারণ করার জন্য ব্যবহার করা হয়.এটা তথ্য প্রাপ্তি ও মানের ব্যাপারে উচ্চ মান বজায় রাখে. উৎপাদন পরিবেশে প্রত্যেক শেয়ার্ডস( Shards) পৃথক একটি রেপ্লিকা সেট হিসাবে কাজ করে.

কনফিগ সার্ভারস: কনফিগ সার্ভারস ক্লাস্টারস এর মেটাডাটা সংরক্ষণ করে.শেয়ার্ডস এ রক্ষিত ক্লাস্টার ডাটা সেট এর ম্যাপিং এ ডাটা ধারণ করে. ক্যোয়ারী রাউটার নির্দিষ্ট Shards অপারেশন লক্ষ্য করে এই মেটাডাটা ব্যবহার করে. উৎপাদন পরিবেশে sharded ক্লাস্টার ঠিক 3টি কনফিগ সার্ভার আছে.

কোয়েরি রাউটার (Query Routers): কোয়েরি রাউটার মূলত মংগোস ইন্সস্ট্যান্স হয়,যা গ্রাহকের এপ্লিকেশনের সঙ্গে ইন্টারফেস হিসাবে কাজ করে এবং যথাযথ শেয়ার্ডস এ প্রত্যক্ষ ভাবে কাজ করে. কোয়েরি রাউটার কার্যক্রম চালানোর জন্য শেয়ার্ডস নির্দিষ্ট করে দেয় এবং ডাটা প্রক্রিয়াজাত করে,তারপর গ্রাহকদের ফলাফল ফেরত প্রদান করে.ক্লায়েন্ট অনুরোধ লোডকে বিভক্ত করার জন্য একটি sharded ক্লাস্টার এ একাধিক কোয়েরি রাউটার ধারণ করতে পারে.

MongoDB Limit Records

MongoDB সীমাবদ্ধ রেকর্ডস

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

 

Limit() পদ্ধতি

MongoDB তে রেকর্ডকে সীমাবদ্ধ করতে হলে limit() মেথড বা পদ্ধতি ব্যবহার করতে হবে। Limit() পদ্ধতি এক নাম্বারের টাইপ সমর্থন করে যা ডকুমেন্টের নাম্বার এবং আপনি প্রদর্শন করতে চাইছেন।

সিনট্যাক্সঃ
limit() এর বেসিক সিনট্যাক্স নিম্নরূপঃ

>db.COLLECTION_NAME.find().limit(NUMBER)

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

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

ডকুমেন্ট quering এর সময় নিচের উদাহরণটি কেবলমাত্র ২টি ডকুমেন্ট প্রদর্শন করবেঃ

>db.mycol.find({},{"title":1,_id:0}).limit(2)
{"title":"MongoDB Overview"}
{"title":"NoSQL Overview"}
>

যদি আপনি Limit() পদ্ধতিতে ডকুমেন্টের নাম্বার উল্লেখ না করেন তাহলে এটি কালেকশনের সকল ডকুমেন্ট প্রদর্শন করবে।

MongoDB Skip() পদ্ধতি

এছাড়াও limit() পদ্ধতি ছাড়া আরও একটি পদ্ধতি skip() আছে যা ডকুমেন্টের সংখ্যার টাইপ সমর্থন করে এবং সেই নাম্বারের ডকুমেন্ট এড়িয়ে(skip) চলে।

সিনট্যাক্সঃ
skip() এর বেসিক সিনট্যাক্স নিম্নরূপঃ

>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

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

>db.mycol.find({},{"title":1,_id:0}).limit(1).skip(1)
{"title":"NoSQL Overview"}
>

অনুগ্রহ করে লক্ষ্য করুন- skip() পদ্ধতিতে ডিফল্ট মান ০ ।

MongoDB Data Modelling . MongoDB ডেটা মডেলিং

MongoDB Data Modelling : MongoDB ডেটা মডেলিং
আদনান নাহিদ
সরকারি তিতুমীর কলেজ ।
MongoDB ডেটায় একটি নমনীয় স্কিমা আছে, যার ফলে একই ধরনের ডকুমেন্টে একই ধরনের গঠনের প্রয়োজন হয় না এবং সংগহে থাকা কমন ডকুমেন্টগুলো বিভিন্নভাবে রাখা যায় ।

MongoDB তে স্কিমা ডিজাইন করার সময় কিছু বিবেচ্য বিষয় :
 ব্যবহারকারীর প্রয়োজনীয়তা অনুযায়ী আপনার স্কিমা ডিজাইন ।
 যদি আপনি চান তাহলে একই ডকুমেন্টে অবজেক্টগুলো একত্রে ব্যবহার করতে পারবেন । অন্যথায় সবগুলো আলাদা করুন (তবে সেখানে একত্রীকরণের প্রয়োজন হয়না এটি নিশ্চিত করুন) ।
 ডাটাগুলো Duplicate বা কপি করুন (কিন্তু সীমাবদ্ধ)। কারণ ডিস্কের স্থান সস্তা সময় গণনার তুলনায় ।
 লেখার সময় একত্র করুন, পড়ার সময় না ।
 ঘন ঘন ব্যবহারের ক্ষেত্রে আপনার স্কিমাগুলো অনুকূলে রাখুন ।
 জটিল স্কিমা একত্রিত করবেন না বা আলাদা রাখুন ।

উদাহরণ :
ধরুন একজন ক্লায়েন্ট তার ব্লগ ওয়েব সাইটের জন্য একটি ডাটাবেস ডিজাইনের প্রয়োজন এবং RDBMS এবং MongoDB স্কিমা নকশা মধ্যে পার্থক্য দেখতে চায় । তাহলে ওয়েবসাইটটি নিম্নলিখিত প্রয়োজনীয়তা অনুসারে হবে ;
 প্রতিটি পোস্টের একটি অনন্য শিরোনাম, বিবরণ এবং URL হবে ।
 প্রতিটি পোস্টে এক বা একাধিক ট্যাগ করতে পারেন ।
 প্রতিটি পোস্টে তার প্রকাশক এবং মোট লাইকের সংখ্যা হবে ।
 প্রতিটি পোস্টে comments কারীর নাম, বার্তা, তথ্য-সময় এবং লাইকের সংখ্যা হবে ।
 প্রতিটি পোস্টে শূন্য বা তার বেশি comments বা মন্তব্য হতে পারে ।

RDBMS উপরোক্ত প্রয়োজনীয়তা অনুসারে স্কিমা ডিজাইন করার জন্য সর্বনিম্ন তিনটি টেবিল থাকবে ।

MongoDB স্কিমা ডিজাইন করার সময় একটি কালেকশান পোস্ট হবে এবং এর কাঠামো হবে নিম্ননুসারে ;
{
_id: POST_ID
title: TITLE_OF_POST,
description: POST_DESCRIPTION,
by: POST_BY,
url: URL_OF_POST,
tags: [TAG1, TAG2, TAG3],
likes: TOTAL_LIKES,
comments: [
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
},
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
}
]
}

এখন RDBMS এ ডাটা দেখানোর সময় আপনাকে 3 টি tables join করতে হবে এবং ডাটা শুধুমাত্র একটি সংগ্রহ থেকে দেখাতে হবে ।

(In Bengali) MongoDB Environment. Install MongoDB on Windows and Linux

স্বাগতম আপনাকে আমাদের টিউটোরিয়াল সাইটে। এখানে আজকে আমরা আলোচোনা করবো কিভাবে আপনি আপনার উইন্ডোজ এ এবং উবনটু তে MongoDB ইন্সটল দিবেন।

Install MongoDB On Windows

 

MongoDB ইন্সটল করতে আপনাকে আগে সর্বশেষ ভার্সন ডাউনলোড করতে হবে, যা আপনার উইন্ডোজ এর ভার্সন এর সাথে মিল থাকবে। এখানে সরাসরি ডাউনলোড এর লিংক দাওয়া হলোঃ http://www.mongodb.org/downloads আপনার উইন্ডোজ এর ভার্সন জানতে কমান্ড প্রমট এর সাহায্য নিন।

C:\>wmic os get osarchitecture

OSArchitecture

64-bit

C:\>

৩২-বিট ভার্সন এ MongoDB সাপোর্ট করে তাতে আপনার ২জিবি র‍্যাম থাকতে হবে। এগুলো থাকলে আপনি আপনার ডাউনলোড ফাইলটি ওপেন করে mongodb-win32-x86_64-[version] ফাইলটি ইন্সটল দিন।

এখন কমান্ড প্রমট এর সাহায্যে ওপেন করুন

C:\>move mongodb-win64-* mongodb

1 dir(s) moved.

C:\>

 

যদি আপনি অন্য কোন যায়গায় extract করেন তাহলে সেই যায়গায় যাবেন।

MongoDB এর নিজস্ব ফাইল সংরক্ষণ করার জন্য একটি ডাটা ফোল্ডার প্রয়োজন. তথ্য \ ডিবি \: MongoDB ডেটা ডিরেক্টরি ডিফল্ট গ. তাই আপনি যদি কমান্ড প্রম্পট ব্যবহার করে এই ফোল্ডার তৈরি করতে হবে. নিম্নলিখিত কমান্ড ক্রম সম্পাদন করে।

C:\>md dataC:\md data\db

 

 

আপনার বিভিন্ন স্থানে MongoDB ইনস্টল থাকে তাহলে আপনি mongod.exe পথ dbpath সেটিং দ্বারা \ তথ্য \ ডিবি জন্য কোন বিকল্প পথ দেখিয়ে দিতে  হবে. একই সমস্যা নিম্নলিখিত কমান্ডের জন্য

 

কমান্ড প্রম্পট-এ MongoDB ইনস্টলেশন ফোল্ডার মধ্যে উপস্থিত বিন ডিরেক্টরি নেভিগেট. ফোল্ডার ডি আমার ইনস্টলেশন ধরুন: সেট আপ \ \ MongoDB

C:\Users\XYZ>d:D:\>cd "set up"D:\set up>cd mongodbD:\set up\mongodb>cd binD:\set up\mongodb\bin>mongod.exe --dbpath "d:\set up\mongodb\data"

 

কনসোল mongod.exe প্রক্রিয়া সফলভাবে চলমান ইঙ্গিত করে যে এই সংযোগ বার্তা জন্য অপেক্ষা প্রদর্শন করা হবে.

 

এখন MongoDB চালানোর জন্য আপনি অন্য কমান্ড প্রম্পট ওপেন করুন এবং নিচের কমান্ড প্রয়োগ করতে হবে

D:\set up\mongodb\bin>mongo.exeMongoDB shell version: 2.4.6connecting to: test>db.test.save( { a: 1 } )>db.test.find(){ "_id" : ObjectId(5879b0f65a56a454), "a" : 1 }>

 

এই যে MongoDB ইনস্টল করা প্রদর্শন এবং সফলভাবে চালানো হবে.পরবর্তী সময়  আপনি শুধুমাত্র কমান্ড প্রয়োগ করে  MongoDB চালাতে পারবেন।

D:\set up\mongodb\bin>mongod.exe --dbpath "d:\set up\mongodb\data" D:\set up\mongodb\bin>mongo.exe

 

Install MongoDB on Ubuntu

 

MongoDB সার্বজনীন GPG key import করার জন্য নিম্নলিখিত কমান্ড ব্যবহার করুন:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Create a /etc/apt/sources.list.d/mongodb.list file using the following command.

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

Now issue the following command to update the repository:

sudo apt-get update

Now install the MongoDB by using following command:

apt-get install mongodb-10gen=2.2.3

উপরে ইনস্টলেশন 2.2.3 বর্তমানে MongoDB সংস্করণ প্রকাশিত হয়. সবসময় সর্বশেষ সংস্করণ ইনস্টল করতে ভুলবেন না. এখন সফলভাবে MongoDB ইনস্টল করা হয়.

Start MongoDB

sudo service mongodb start

Stop MongoDB

sudo service mongodb stop

Restart MongoDB

sudo service mongodb restart

To use mongodb run the following command

mongo

 

এই mongod উদাহরণস্বরূপ চলমান সাথে সংযোগ করা হবে.

MongoDB Help

MongoDB ক্লায়েন্ট কমান্ড টাইপ db.help () এর তালিকা পাবেন. এই হিসাবে অনুসরণ করে আপনি কমান্ড তালিকা দিতে হবে:

MongoDB Statistics

MongoDB সার্ভার সম্পর্কে পরিসংখ্যান MongoDB ক্লায়েন্ট কমান্ড db.stats (টাইপ) পেতে. এই ডাটাবেস নাম প্রদর্শন ডাটাবেসের মধ্যে সংগ্রহ এবং নথি বাধা হবে. কমান্ড নীচে প্রদর্শিত হয় আউটপুট:

 

 

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

মঙ্গোডিবি – ইন্সার্ট ডোকুমেন্ট (MongoDB – Insert Document)

MongoDB - ডকুমেন্ট সন্নিবেশন
সন্নিবেশ পদ্ধতি
MongoDB সংগ্রহে ডাটা সন্নিবেশন বা প্রবেশ করতে হলে আপনাকে MongoDB এর সন্নিবেশ পদ্ধতি ব্যবহার করতে হবে ।
শব্দবিন্যাস
শব্দবিন্যাস সন্নিবেশন বা প্রবেশের প্রাথমিক নির্দেশনা নিম্নে দেয়া হল :
>db.COLLECTION_NAME.insert(document)
উদাহরণ
>db.mycol.insert({
_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
})
পূর্ববর্তী টিউটোরিয়াল অনুসারে এখানে mycol আমাদের সংগ্রহের নাম । ডকুমেন্টগুলো ডাটাবেসের মধ্যে উপস্থিত না থাকলে, MongoDB তে সংগ্রহ বা কালেকশন তৈরি করুন এবং তারপর ডকুমেন্টগুলো প্রবেশ করুন ।
যদি সন্নিবেশকৃত ডকুমেন্টগুলোর মধ্যে নির্দিষ্ট _id parameter বা স্থিতিমাপ না থাকে তাহলে MongoDB এই নথির জন্য একটি আদর্শ লক্ষ্য নির্ধারণ করতে হবে ।
_id 12 বাইট হেক্সাডেসিমেল সংখ্যা প্রতিটি ডকুমেন্টের জন্য আদর্শ সংখ্যা । 12 বাইটকে নিম্নোক্ত ভাবে ভাগে করা হয় :
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
একক অনুসন্ধানে একাধিক ডকুমেন্ট প্রবেশ করার জন্য, আপনি ডকুমেন্টে অ্যারের কমান্ডের মাধ্যমে পাস করতে পারেন ।
উদাহরণ
>db.post.insert([
{
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
},
{
title: 'NoSQL Database',
description: 'NoSQL database doesn't have tables',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 20,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2013,11,10,2,35),
like: 0
}
]
}
])
এছাড়াও আপনি db.post.save ব্যবহার করতে পারেন নথি (ডকুমেন্ট) প্রবেশ করার জন্য । যদি আপনি নথিতে নির্দিষ্ট _id উল্লেখ না করেন, তাহলে সংরক্ষণ পদ্ধতি সন্নিবেশ পদ্ধতি হিসাবে একই কাজ করবে । আর যদি আপনি নির্দিষ্ট _id উল্লেখ করেন তাহলে এটি সমস্ত ডকুমেন্ট প্রতিস্থাপন করবে যেভাবে সংরক্ষণ পদ্ধতি সংরক্ষিত হয়েছিল ।

MongoDB Java

Done By Raju(DU)

MongoDB Java

Installation পদ্ধতিঃ

Java program এ MongoDB ব্যাবহার করার পূর্বে আমাদেরকে নিশ্চিত করতে হবে যে MongoDB JDBC
Driver এবং Java আমাদের machine এ পূর্বে থেকেই রয়েছে। আপনি আরও Java tutorial দেখতে পারেন আপনার
machine এ Java installation করার জন্য। এখন দেখবে কিভাবে MongoDB JDBC driver টি আপনার machine
এ setup করবেন।
১। প্রথমে আপনাকে একটি jar ফাইল দরকার পড়বে সেটি mongodb/mongo-java-driver/downloads> Download mongo.jar
থেকে নামিয়ে নিতে হবে এবং নিশ্চিত হতে হবে সেটি যেন নতুন সংস্করণের হয়।
২। আপনাকে অবশ্যই mongo.jar কে আপনার classpath এ সংযুক্ত করতে হবে ।

Connect to database( Database এ Connect করণ)
---------------------------------------------------
Database এ connect করার জন্য আপনাকে database name নির্দিষ্ট করতে হবে, যদি database এর কোন অস্তিত্ব না
থাকে তবে mongodb নিজেই তা তৈরি করে নিবে।

Database এ connect করার কিছু Code নিম্নরুপঃ

import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}

এখন database পরীক্ষা করার জন্য উপরের program টি সঙ্কলন এবং চালানো যাক। আপনার প্রয়োজন মত আপনি
path পরিবর্তন করে নিতে পারেন। আমরা JDBC driver mongo-2.10.1.jar ব্যাবহার করে বর্তমান path টি পাওয়া যায়।

যেমনঃ
$javac MongoDBJDBC.java
$java -classpath ".:mongo-2.10.1.jar" MongoDBJDBC
Connect to database successfully
Authentication: true

যদি আমরা machine টিতে Windows OS ব্যাবহার করি তবে আমরা code কে নিম্নরুপে compile and run করেতে
পারিঃ

$javac MongoDBJDBC.java
$java -classpath ".;mongo-2.10.1.jar" MongoDBJDBC
Connect to database successfully
Authentication: true

এইখানে auth এর Value হবে true, যদি user name এবং password টি নির্দিষ্ট database এর জন্য valid হয়।

Create a collection:(collection তৈরি করন)
-----------------------------
একটি collection তৈরি করার জন্য com.mongodb.DB class এর createCollection( ) পদ্ধতি ব্যাবহার করতে হয়।
Collection তৈরি করার জন্য code গুলি নিম্ন রুপঃ
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
DBCollection coll = db.createCollection("mycol");
System.out.println("Collection created successfully");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}

যখন program টি compiled and executed হবে তখন এটি নিম্নরূপ ফলাফল দিবে-
Connect to database successfully
Authentication: true
Collection created successfully

Getting/ selecting a collection(collection নির্দিষ্ট করন):
----------------------------------------------------
একটি collection কে database এ নির্দিষ্ট করতে com.mongodb.DBCollection class টির
getCollection() পদ্ধতি ব্যাবহার করা হয়।

Code গুলি নিম্নরূপঃ
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
DBCollection coll = db.createCollection("mycol");
System.out.println("Collection created successfully");
DBCollection coll = db.getCollection("mycol");
System.out.println("Collection mycol selected successfully");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}

যখন program টি compiled and executed হবে তখন এটি নিম্নরূপ ফলাফল দিবে-
Connect to database successfully
Authentication: true
Collection created successfully
Collection mycol selected successfully

Insert a document (একটি document প্রবেশ করণ):
-------------------------------------------------
mongodb তে একটি document কে প্রবেশ করাতে com.mongodb.DBCollection class এর
insert() পদ্ধতি ব্যাবহার করা হয়।

Code গুলি নিম্নরূপঃ
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Collection mycol selected successfully");
BasicDBObject doc = new BasicDBObject("title", "MongoDB").
append("description", "database").
append("likes", 100).
append("url", "http://www.tutorialspoint.com/mongodb/").
append("by", "tutorials point");
coll.insert(doc);
System.out.println("Document inserted successfully");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}

যখন program টি compiled and executed হবে তখন এটি নিম্নরূপ ফলাফল দিবে-

Connect to database successfully
Authentication: true
Collection mycol selected successfully
Document inserted successfully

Retrieve all documents(document এর পুনরুদ্ধার করন):
-----------------------------------------------------
collection এর সকল document কে নির্বাচন করতে com.mongodb.DBCollection class এর
find() পদ্ধতি টি ব্যাবহার করা হয়। এই পদ্ধতি টি cursor কে বদলে দেয়, তাই আপনাকে তা পুনরুদ্ধার
করার প্রয়োজন পরবে।

Code গুলি নিম্নরূপঃ
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Collection mycol selected successfully");
DBCursor cursor = coll.find();
int i=1;
while (cursor.hasNext()) {
System.out.println("Inserted Document: "+i);
System.out.println(cursor.next());
i++;
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}

যখন program টি compiled and executed হবে তখন এটি নিম্নরূপ ফলাফল দিবে-

Connect to database successfully
Authentication: true
Collection mycol selected successfully
Inserted Document: 1
{
"_id" : ObjectId(7df78ad8902c),
"title": "MongoDB",
"description": "database",
"likes": 100,
"url": "http://www.tutorialspoint.com/mongodb/",
"by": "tutorials point"
}

Update document( document এর হালনাগাদ):
---------------------------------------------
collection থেকে document কে হালনাগাদ করার জন্য com.mongodb.DBCollection class
এর update() পদ্ধতি ব্যাবহার করা হয়।

Code গুলি নিম্নরূপঃ

import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Collection mycol selected successfully");
DBCursor cursor = coll.find();
while (cursor.hasNext()) {
DBObject updateDocument = cursor.next();
updateDocument.put("likes","200")
col1.update(updateDocument);
}
System.out.println("Document updated successfully");
cursor = coll.find();
int i=1;
while (cursor.hasNext()) {
System.out.println("Updated Document: "+i);
System.out.println(cursor.next());
i++;
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}

যখন program টি compiled and executed হবে তখন এটি নিম্নরূপ ফলাফল দিবে-

Connect to database successfully
Authentication: true
Collection mycol selected successfully
Document updated successfully
Updated Document: 1
{
"_id" : ObjectId(7df78ad8902c),
"title": "MongoDB",
"description": "database",
"likes": 100,
"url": "http://www.tutorialspoint.com/mongodb/",
"by": "tutorials point"
}

Delete first document( প্রথম document মুছে ফেলা):
--------------------------------------------------
collection থেকে প্রথম document মুছে ফেলার জন্য প্রথমে com.mongodb.DBCollection class
এর findOne() পদ্ধতি এবং পরে remove পদ্ধতি ব্যাবহার করা হয়।

Code গুলি নিম্নরূপঃ
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Collection mycol selected successfully");
DBObject myDoc = coll.findOne();
col1.remove(myDoc);
DBCursor cursor = coll.find();
int i=1;
while (cursor.hasNext()) {
System.out.println("Inserted Document: "+i);
System.out.println(cursor.next());
i++;
}
System.out.println("Document deleted successfully");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}

যখন program টি compiled and executed হবে তখন এটি নিম্নরূপ ফলাফল দিবে-
Connect to database successfully
Authentication: true
Collection mycol selected successfully
Document deleted successfully

mongodb এর বাকি পদ্ধতি যেমন save(), limit(), skip(), sort() একই ভাবে কাজ করে ।

MongoDB সীমাবদ্ধ রেকর্ডস

MongoDB সীমাবদ্ধ রেকর্ডস
নয়ন চন্দ্র দত্ত

* Limit() পদ্ধতি
MongoDB তে রেকর্ডকে সীমাবদ্ধ করতে হলে limit() মেথড বা পদ্ধতি ব্যবহার করতে হবে। Limit() পদ্ধতি এক নাম্বারের টাইপ সমর্থন করে যা ডকুমেন্টের নাম্বার এবং আপনি প্রদর্শন করতে চাইছেন।

সিনট্যাক্সঃ
limit() এর বেসিক সিনট্যাক্স নিম্নরূপঃ

>db.COLLECTION_NAME.find().limit(NUMBER)

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

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

ডকুমেন্ট quering এর সময় নিচের উদাহরণটি কেবলমাত্র ২টি ডকুমেন্ট প্রদর্শন করবেঃ

>db.mycol.find({},{"title":1,_id:0}).limit(2)
{"title":"MongoDB Overview"}
{"title":"NoSQL Overview"}
>

যদি আপনি Limit() পদ্ধতিতে ডকুমেন্টের নাম্বার উল্লেখ না করেন তাহলে এটি কালেকশনের সকল ডকুমেন্ট প্রদর্শন করবে।

* MongoDB Skip() পদ্ধতি
এছাড়াও limit() পদ্ধতি ছাড়া আরও একটি পদ্ধতি skip() আছে যা ডকুমেন্টের সংখ্যার টাইপ সমর্থন করে এবং সেই নাম্বারের ডকুমেন্ট এড়িয়ে(skip) চলে।

সিনট্যাক্সঃ
skip() এর বেসিক সিনট্যাক্স নিম্নরূপঃ

>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

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

>db.mycol.find({},{"title":1,_id:0}).limit(1).skip(1)
{"title":"NoSQL Overview"}
>

অনুগ্রহ করে লক্ষ্য করুন- skip() পদ্ধতিতে ডিফল্ট মান ০ ।

MongoDB Projection

MongoDB প্রজেকশন
নয়ন চন্দ্র দত্ত

MongoDB প্রজেকশন
MongoDB প্রজেকশনের অর্থ হচ্ছে একটি ডকুমেন্টের সকল তথ্য নির্বাচন না করে বরং শুধুমাত্র প্রয়োজনীয় তথ্য নির্বাচন করা। যদি একটি ডকুমেন্টের ৫টি ক্ষেত্র থাকে এবং আপনার ৩টি দেখানোর প্রয়োজন হয় তাহলে এদের মধ্য
থেকে শুধু ৩টি সিলেক্ট করুন।

find() পদ্ধতি
MongoDB এর find() পদ্ধতি নিয়ে আগের টিউটোরিয়ালে আলোচনা (দ্বিতীয় অপশনাল প্যারামিটার বাদে) করা হয়েছে। আপনি যখন MongoDB তে find() পদ্ধতি সম্পাদন করেন তখন একটি ডকুমেন্টের সব ক্ষেত্র প্রদর্শন করে।
এটিকে সীমাবদ্ধ করার জন্য আপনার মান 1 বা 0 ক্ষেত্র-তালিকা সেট করার প্রয়োজন হবে। ১ ক্ষেত্র প্রদর্দন করার জন্য এবং ০ ক্ষেত্র আড়াল করতে ব্যবহার করা হয়।

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

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

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

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

ডকুমেন্ট quering এর সময় নিম্নলিখিত উদাহরণে ডকুমেন্টের টাইটেল প্রদর্শন করবেঃ

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

দয়া করে নোট করে রাখুন- find() পদ্ধতি নির্বাহের সময় _id field সবসময় প্রদর্শন করে। যদি আপনি এই ক্ষেত্রটি না চান তাহলে আপনাকে এটি 0 সেট করতে হবে।

MongoDB Overview. MongoDB এর সংক্ষিপ্ত বিবরণ

MongoDB এর সংক্ষিপ্ত বিবরণ
নয়ন চন্দ্র দত্ত

MongoDB একটি ক্রস প্ল্যাটফর্ম এবং ডকুমেন্ট ভিত্তিক ডেটাবেস যা উচ্চ কার্যকারিতা, উচ্চ প্রাপ্যতা এবং সহজ কর্মপরিধি বৃদ্ধির উদ্দেশ্য উপলব্ধি করায়। MongoDB সংগ্রহ এবং ডকুমেন্টবিষয়ক ধারণায় কাজ করে।

ডেটাবেস
ডেটাবেস কালেকশনের জন্য একটি শারীরিক ধারক। ফাইল সিস্টেমে প্রতিটি ডেটাবেস ফাইলের নিজস্ব সেট পায়। একটি একক MongoDB সার্ভারের সাধারণত একাধিক ডেটাবেস থাকে।

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

ডকুমেন্ট
ডকুমেন্ট হচ্ছে কী-মান জোড়ার একটি সেট। ডকুমেন্টের গতিশীল স্কিমা আছে। গতিশীল স্কিমা বলতে একই কালেকশনের মধ্যের সব ডকুমেন্টের একই ক্ষেত্র বা কাঠামো জোড়ার প্রয়োজন নেই।
কালেকশন ডকুমেন্টের মধ্যে একটি সাধারণ ক্ষেত্র বিভিন্ন ধরনের তথ্য জমা রাখতে পারে।
নিচে MongoDB এর সাথে RDBMS টেকনোলজির সম্পর্ক দেখানো হলঃ

RDBMS: ডেটাবেস
RDBMS: ডেটাবেস

RDBMS: টেবিল
RDBMS: কালেকশন

RDBMS: Tuple / সারি
RDBMS: ডকুমেন্ট

RDBMS: কলাম
RDBMS: ক্ষেত্র

RDBMS: টেবিল জয়েন
RDBMS: এমবেডেড ডকুমেন্টস

RDBMS: প্রাথমিক কী
RDBMS: প্রাথমিক কী ( ডিফল্ট কি _id যা MongoDB দ্বারা যোগান হয় )

ডাটাবেস সার্ভার ও ক্লায়েন্ট

RDBMS: Mysqld / ওরাকল
RDBMS: mongod

RDBMS: মাইএসকিউএল / sqlplus
RDBMS: mongo

নমুনা ডকুমেন্ট
উল্লিখিত নীচের উদাহরণে একটি ব্লগ সাইটের ডকুমেন্টের গঠন দেখানো হয়েছে যেখানে কেবলমাত্র একটি কমা দিয়ে কী-মান জোড়াকে পৃথক করা হয়েছেঃ

{
_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,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}

_id একটি 12 বাইটের হেক্সাডেসিমেল সংখ্যা যা প্রতিটি ডকুমেন্টের স্বতন্ত্রতা বজায় রাখে। ডকুমেন্ট ডুকানোর সময় _id দিতে পারেন। যদি আপনি দিতে না চান তবে MongoDB প্রতিটি ডকুমেন্টের জন্য একটি ইউনিক আইডি প্রদান করবে।
এই 12 বাইট প্রথম 4 বাইট বর্তমান টাইমস্ট্যাম্প এর জন্য, পরবর্তী 3 বাইট মেশিন আইডির জন্য, পরবর্তী 2 বাইট MongoDB সার্ভারের প্রক্রিয়াকরণ ID এর জন্য এবং বাকী ৩ বাইট হচ্ছে সহজ ক্রমবর্ধমান মান।

MongoDB Aggregation

MongoDB সীমাবদ্ধ রেকর্ডস
নয়ন চন্দ্র দত্ত

* Limit() পদ্ধতি
MongoDB তে রেকর্ডকে সীমাবদ্ধ করতে হলে limit() মেথড বা পদ্ধতি ব্যবহার করতে হবে। Limit() পদ্ধতি এক নাম্বারের টাইপ সমর্থন করে যা ডকুমেন্টের নাম্বার এবং আপনি প্রদর্শন করতে চাইছেন।

সিনট্যাক্সঃ
limit() এর বেসিক সিনট্যাক্স নিম্নরূপঃ

>db.COLLECTION_NAME.find().limit(NUMBER)

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

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

ডকুমেন্ট quering এর সময় নিচের উদাহরণটি কেবলমাত্র ২টি ডকুমেন্ট প্রদর্শন করবেঃ

>db.mycol.find({},{"title":1,_id:0}).limit(2)
{"title":"MongoDB Overview"}
{"title":"NoSQL Overview"}
>

যদি আপনি Limit() পদ্ধতিতে ডকুমেন্টের নাম্বার উল্লেখ না করেন তাহলে এটি কালেকশনের সকল ডকুমেন্ট প্রদর্শন করবে।

* MongoDB Skip() পদ্ধতি
এছাড়াও limit() পদ্ধতি ছাড়া আরও একটি পদ্ধতি skip() আছে যা ডকুমেন্টের সংখ্যার টাইপ সমর্থন করে এবং সেই নাম্বারের ডকুমেন্ট এড়িয়ে(skip) চলে।

সিনট্যাক্সঃ
skip() এর বেসিক সিনট্যাক্স নিম্নরূপঃ

>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

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

>db.mycol.find({},{"title":1,_id:0}).limit(1).skip(1)
{"title":"NoSQL Overview"}
>

অনুগ্রহ করে লক্ষ্য করুন- skip() পদ্ধতিতে ডিফল্ট মান ০ ।

মংগোডিবি ডাটাটাইপ (MongoDB Data Types)

MongoDB ডেটাটাইপ্স
নয়ন চন্দ্র দত্ত

MongoDB অনেক ডেটাটাইপ্স সমর্থন করে যার তালিকা নিচে দেওয়া হলঃ

১। স্ট্রিং এই সবচেয়ে বেশি ব্যবহৃত ডেটাটাইপ যা তথ্য সংরক্ষণ করার কাজে ব্যবহার করা হয়। MongoDB স্ট্রিং UTF-8 বৈধ হতে হবে।

২। ইন্টিজারঃ একটি সংখ্যাগত মান সংরক্ষণ করার জন্য এই টাইপ ব্যবহার করা হয়। পূর্ণসংখ্যা 32 বিট বা 64 বিট আপনার সার্ভারের উপর নির্ভর করে হতে পারে।

৩। বুলিয়ানঃ এই ধরনের টাইপ একটি বুলিয়ান (সত্য / মিথ্যা ) সংরক্ষণ করতে ব্যবহৃত হয়।

৪। ডাবলঃ এই ধরনের টাইপ ফ্লোটিং পয়েন্ট মান ধারণ করার জন্য ব্যবহৃত হয়।

৫। মিন/মেক্স কীঃ এই ধরনের টাইপ সর্বনিম্ন মানের বিরুদ্ধে একটি মানকে এবং সর্বোচ্চ BSON উপাদানকে তুলনা করতে ব্যবহৃত হয়।

৬। অ্যারেঃ এই ধরনের টাইপ অ্যারে বা লিস্ট বা একাধিক মান একটা key এর মধ্যে ধারণ করার জন্য ব্যবহৃত হয়।

৭। টাইমস্ট্যাম্পঃ যখন একটি ডকুমেন্ট পরিবর্তন বা যোগ করা হয় তখন এটি রেকর্ডিং এর জন্য সুবিধাজনক ।

৮। অবজেক্টঃ এই ডেটাটাইপ এমবেডেড ডকুমেন্ট এর জন্য ব্যবহৃত হয়।

৯। নালঃ এই ধরনের টাইপ একটি নাল মান ধারণ করার জন্য ব্যবহার করা হয়।

১০। সিম্বল বা প্রতীকঃ এই ডেটাটাইপ অনুরূপভাবে একটি স্ট্রিং এ ব্যবহার করা হয় কিন্তু, এটা সাধারণত এমন ভাষার জন্য সংরক্ষিত আছে যা একটি নির্দিষ্ট প্রতীক টাইপ ব্যবহার করে।

১১। ডেট বা তারিখঃ এই ডেটাটাইপ ইউনিক্স সময় বিন্যাসে বর্তমান তারিখ বা সময় সংরক্ষণে ব্যবহৃত হয়। তারিখের অবজেক্ট তৈরি করে এবং তাতে দিন , মাস, বছর দিয়ে আপনার নিজের তারিখ ও সময় নির্দিষ্ট করতে পারেন।

১২। অবজেক্ট আইডিঃ এই ডেটাটাইপ ডকুমেন্ট আইডি সংরক্ষণ করতে ব্যবহৃত হয়।

১৩। বাইনারি ডেটাঃ এই ডেটাটাইপ বাইনারি তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।

১৪। কোডঃ এই ডেটাটাইপ ডকুমেন্টে জাভাস্ক্রিপ্ট কোড সংরক্ষণ করতে ব্যবহৃত হয়।

১৫। রেগুলার এক্সপ্রেশনঃ এই ডেটাটাইপ রেগুলার এক্সপ্রেশন সংরক্ষণ করতে ব্যবহৃত হয়।

MongoDB Replication (প্রতিলিপিকরণ)

Mir Rasel
Jahangirnagar University
Dhaka, Bangladesh

প্রতিলিপিকরণ একটি প্রক্রিয়া যা কয়েকটি সার্ভারের মধ্যে ডাটা সিঙ্ক্রোনাইজ করে।
প্রতিলিপিকরণ আপনাকে ডাটা প্রাচুর্যতা দিবে এবং ডাটার উপস্থিতির কয়েকটি কপি বিভিন্ন সার্ভারে রাখবে, প্রতিলিপিকরণ একটি একক সার্ভার থেকে আপনার ডাটা হারিয়ে যাওয়াকে রক্ষা করবে। এই প্রতিলিপিকরণ আরও আপনাকে দিবে হার্ডওয়্যার নষ্ট হয়ে যাওয়া থেকে ডাটা পুনরুদ্ধারের সুবিধা।
আপনার ডাটার অaন্যান্য কপি থেকে আপনি একটি দুর্যোগ রিকভারি, রিপ্ররটিং এবং ব্যাক আপের জন্য রাখতে পারবেন।

প্রতিলিপিকরণ কেনো দরকার?

• আপনার ডাটা নিরাপদ রাখার জন্য
• ডাটার উপস্থিতি (২৪/৭) রাখা
• দুর্যোগের সময় পুনরুদ্ধার করার জন্য
• কোনো ডাউনটাইম রক্ষণাবেক্ষণের দরকার নাই ( যেমনঃ ব্যাকআপ, ইন্ডেক্স পুন্রায় গঠন, কম্প্যাকশন)
• রিড স্কেলিং ( পড়ার জন্য অতিরিক্ত রাখা)
• প্রতিলিপি সেট অ্যাপ্লিকেশনের জন্য স্বচ্ছ রাখা

যেভাবে MongoDB প্রতিলিপি কাজ করে
MongoDB আর্কাইভ প্রতিলিপিকরণ রেপ্লিকা সেটে ব্যবহৃত হয়। রেপ্লিকা সেট হলো একটি mongod এর গ্রুপ উদাহরণ হিসেবে বলা যায় এটি একটি হোস্ট যা একই ডাটা রাখে। একটি রেপ্লিকা নোডের মধ্যে প্রাইমারী নোড নামে একটি নোড আছে যা সকল লিখিত অপারেশন গ্রহণ করে।
অন্য উদাহরণ, প্রাথমিক অপারেশন গুলোর মধ্যমে মাধ্যমিক অপারেশন গুলো সম্পন্ন হয় যার কারণে উভয়েই একই ডাটা সেট থাকে। রেপ্লিকা সেটে শুধুমাত্র একটি প্রাথমিক নোড আছে।
১. রেপ্লিকা সেট হলো একটি দুই বা ততোধিক নোডের গ্রপ। ( সাধারণত তিনটি নোদের দরকার হয় )
২. একটি রেপ্লিকা সেটে একটি নোড হলো প্রাস্থমিক নোড এবং বাকীগুলো হলো মাধ্যমিক ন...
৩. সব ডাটা প্রাথমিক নোড থেকে মাধ্যমিক নোডে প্রতিলিপি হয়।
৪. সয়ংক্রিয় ফেইল অভার বা রক্ষণাবেক্ষনের সময়, প্রাথমিক নির্বাচন স্থাপনের সময় আরেকটি নতুন নোড নির্বাচিত হয়।।
৫. বিফলে যাওয়া নোডের রিকভারি সম্পন্ন হওয়ার পর, এটি আবার রেপ্লিকা সেটে যোগ দেয় এবং মাধ্যমিক নোড হিসেবে কাজ করে।

সাধারণত mongodb এর একটি নকশা দেখানো হয় যে ক্লায়েন্ট এপ্লিকেশন সবসময় প্রাথমিক নোডের সাথে যোগাযোগ রাখে এবং প্রাথমিক নোড এরপরে মাধ্যমিক নোডে ডাটা প্রতিলিপি করে।

রেপ্লিকা সেটের ফিচারসমূহঃ
• একটি ক্লাস্টার এন নোড
• যেকোনো নোড প্রাথমিক হতে পারে
• সকল লেখা অপারেশন প্রাথমিকে যায়
• সয়ংক্রিয় ফেইলঅভার
• সয়ংক্রিয় রিকোভারি
• প্রাথমিক নির্বাচনের ঐক্য

[In Bengali] MongoDB Drop Collection . MongoDB ড্রপ কালেকশন

MongoDB ড্রপ কালেকশন
নয়ন চন্দ্র দত্ত

কেমন আছেন সবাই? আজ আমি আপনাদের জন্য নিয়ে এলাম একটি নতুন টিউটোরিয়াল - MongoDB ড্রপ কালেকশন । তাহলে চলুন আজকের টিউটোরিয়াল সম্পর্কে ।

drop() পদ্ধতি
MongoDB এর ডেটাবেস থেকে একটি কালেকশন ড্রপ করতে db.collection.drop() ব্যবহৃত হয়।

সিনট্যাক্স:
drop() কমান্ডের বেসিক সিনট্যাক্স বা বাক্য গঠন নিম্নরূপঃ

db.COLLECTION_NAME.drop()

উদাহরণ:
প্রথমত, আপনার mydb ডেটাবেসের মধ্যে available আছে এমন কালেকশন চেক করে নিন।

>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
tutorialspoint
>

এখন mycollection এই নাম দিয়ে কালেকশনটি ড্রপ করুন।

>db.mycollection.drop()
true
>

আবারো ডেটাবেস এর মধ্যে কালেকশনের লিস্ট চেক করে নিন।

>show collections
mycol
system.indexes
tutorialspoint
>

drop() পদ্ধতি সত্য দেখাবে যদি সিলেক্টকরা কালেকশনগুলো সঠিকভাবে ড্রপ হয়। অন্যথায় এটি মিথ্যা দেখাবে ।

 

 

মঙ্গোডিবি ড্রপ কালেকশন

drop() মেথড:
মঙ্গোডিবিতে db.collection.drop() এর মাধ্যমে ডাটাবেস থেকে কোনো কালেকশনকে ড্রপ করা যায়/ফেলে দেয়া যায়।

সিনট্যাক্স:
drop() কমান্ডের বেসিক সিনট্যাক্সটি হলো:
db.COLLECTION_NAME.drop()

উদাহরণ:
প্রথমে mydb ডাটাবেসের কালেকশনকে গুলোকে চেক করা হলো।
>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
hometech
>
তারপর কালেকশন থেকে mycollection নামের কালেকশনটিকে ড্রপ করা হলো।
>db.mycollection.drop()
true
>
পুনরায় ডাটাবেসের কালকেশনকে চেক করা হলো।
>show collections
mycol
system.indexes
hometech
>

সিলেক্টেড কোনো কালেকশন যদি সঠিকভাবে ড্রপ হয় তাহলে drop() মেথড True ভেলু রিটার্ন করে অন্যথায় False ভেলু রিটার্ন করে।

MongoDB Drop Database । MongoDB ড্রপ ডেটাবেস

MongoDB Drop Database

MongoDB ড্রপ ডেটাবেস
নয়ন চন্দ্র দত্ত

dropDatabase() পদ্ধতি
MongoDB এর db.dropDatabase() কমান্ড একটি বিদ্যমান ডেটাবেস ড্রপ করতে ব্যবহৃত হয়।

সিনট্যাক্স:
dropDatabase() কমান্ডের বেসিক সিনট্যাক্স বা বাক্য গঠন নিম্নরূপঃ

db.dropDatabase()

এটি সিলেক্ট করা ডেটাবেস ডিলিট করবে। যদি আপনি কোন ডেটাবেস সিলেক্ট না করেন তাহলে এটি ডিফল্ট 'test' ডেটাবেস ডিলিট করবে।

উদাহরণ:
প্রথমত, show dbs কমান্ড ব্যবহার করে লিস্ট available ডেটাবেস চেক করে নিনঃ

>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB
>

আপনি যদি নতুন ডেটাবেস <mydb> কে ডিলিট করতে চান তাহলে dropDatabase() কমান্ড নিম্নরূপ হবেঃ

>use mydb
switched to db mydb
>db.dropDatabase()
>{ "dropped" : "mydb", "ok" : 1 }
>

এখন ডেটাবেস এর লিস্ট চেক করুন

>show dbs
local 0.78125GB
test 0.23012GB
>

MongoDB Advantages . MongoDB এর উপকারিতা

MongoDB এর উপকারিতা

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

 

কোন রিলেশনাল ডাটাবেস এর একটি সাধারণ স্কিমা ডিজাইন বা নকশা আছে যা টেবিলের সংখ্যা এবং এই সমস্ত টেবিলের মধ্যে সম্পর্ক দেখায়।

RDBMS এর উপর MongoDB এর উপকারিতা

১। স্কিমা হ্রাসঃ MongoDB একটি ডকুমেন্ট ডেটাবেস যেখানে একটি কালেকশন ভিন্ন ভিন্ন ডকুমেন্টে ধারণ করে। ডকুমেন্টের ক্ষেত্র সংখ্যা, কন্টেন্ট, আকার এক ডকুমেন্ট থেকে অন্য ডকুমেন্টে ভিন্ন হতে পারে।

২। একটি একক বস্তুর গঠন স্পষ্ট হয়।

৩। কোন জটিল যোগদান থাকে না।

৪। গভীর অনুসন্ধান-ক্ষমতা। ডকুমেন্ট-ভিত্তিক অনুসন্ধান ল্যংগুয়েজ যা প্রায় এসকিউএল এর মত শক্তিশালী, এর ব্যবহারে ডকুমেন্টগুলোতে MongoDB এর গতিশীল অনুসন্ধান সমর্থন করে ।

৫। Tuning বা সুরকরণ

৬। বাধাপ্রাপ্ত স্কেল-আউটঃ MongoDB এর আকার পরিবর্তন করা সহজ ।

৭। অ্যাপ্লিকেশন অবজেক্টকে ডেটাবেস অবজেক্টে রূপান্তর করার প্রয়োজন নেই। দ্রুত তথ্য এক্সেস সক্রিয় করতে, কাজের সেট জমা করার জন্য অভ্যন্তরীণ মেমরি ব্যবহার করুন ।

 

MongoDB কেন ব্যবহার করা উচিত

১। ডকুমেন্ট ভিত্তিক সংগ্রহস্থলঃ JSON স্টাইল ডকুমেন্টে তথ্য জমা হবে।

২। যেকোন অ্যাট্রিবিউট এর ইন্ডেক্সকরণ

৩। প্রতিলিপি এবং উচ্চ সহজলভ্যতা

৪। সমৃদ্ধশালী অনুসন্ধান বা Queries

৫। দ্রুত ক্ষেত্র আপডেট করা

৬। MongoDB দ্বারা পেশাগত সাপোর্ট প্রদান

 

কোথায় MongoDB ব্যবহার করা উচিত?

১। বড় ডেটা

২। কনটেন্ট ম্যানেজমেন্ট এবং ডেলিভারি

৩। মোবাইল এবং সামাজিক অবকাঠামো

৪। ব্যবহারকারীর ডেটা ব্যবস্থাপনা এবং

৫।তথ্যের হাব(Hub)

 

http://Bangla.SaLearningSchool.com

MongoDB Delete Document . MongoDB ডিলিট ডকুমেন্ট

MongoDB ডিলিট ডকুমেন্ট

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

remove() পদ্ধতি

MongoDB এর remove() পদ্ধতি কালেকশন থেকে ডকুমেন্ট ডিলিট করতে ব্যবহৃত হয়।

দুটি প্যারামিটার বাদে সবক্ষেত্রে remove() পদ্ধতি গ্রণযোগ্য হয়। একটি deletion criteria এবং অন্যটি justOne flag ।

১। deletion criteria: (অপশনাল) ডকুমেন্ট অনুযায়ী deletion criteria মেছে ফেলা হবে।

২। justOne: যদি সত্য বা ১ সেট করা থাকে তবে শুধুমাত্র একটি ডকুমেন্ট মুছা হবে।

 

সিনট্যাক্স বা বাক্য গঠন:

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

>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)

 

উদাহরণঃ

নির্দেশিত ডেটায় mycol কালেকশন বিবেচনা করি।

 

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}

{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}

{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}

 

উল্লেখিত উদাহণে 'MongoDB Overview' নামক টাইটেলের সকল ডকুমেন্ট মেছে ফেলবে।

>db.mycol.remove({'title':'MongoDB Overview'})

>db.mycol.find()

{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}

{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}

>

শুধুমাত্র এক মুছে ফেলা

যদি একাধিক রেকর্ড থাকে এবং আপনি যদি শুধু প্রথম রেকর্ডটি মুছতে চান তাহলে remove() পদ্ধতির জায়গায় justOne প্যারামিটার ব্যবহার করুন।

>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

 

সব ডকুমেন্ট মুছে ফেলা

আপনি যদি মুছে ফেলার বিচার্য বিষয় উল্লেখ না করেন, তাহলে mongodb কালেকশন থেকে সব ডকুমেন্ট মুছে ফেলবে।

এটি এসকিউএল এর truncate  কমান্ড এর সমতুল্য।

>db.mycol.remove()

>db.mycol.find()

 

http://Bangla.SaLearningSchool.com

MongoDB Create Collection . MongoDB ড্রপ কালেকশন

MongoDB ড্রপ কালেকশন
নয়ন চন্দ্র দত্ত

কেমন আছেন সবাই? আজ আমি আপনাদের জন্য নিয়ে এলাম একটি নতুন টিউটোরিয়াল - MongoDB ড্রপ কালেকশন । তাহলে চলুন আজকের টিউটোরিয়াল সম্পর্কে ।

drop() পদ্ধতি
MongoDB এর ডেটাবেস থেকে একটি কালেকশন ড্রপ করতে db.collection.drop() ব্যবহৃত হয়।

সিনট্যাক্স:
drop() কমান্ডের বেসিক সিনট্যাক্স বা বাক্য গঠন নিম্নরূপঃ

db.COLLECTION_NAME.drop()

উদাহরণ:
প্রথমত, আপনার mydb ডেটাবেসের মধ্যে available আছে এমন কালেকশন চেক করে নিন।

>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
tutorialspoint
>

এখন mycollection এই নাম দিয়ে কালেকশনটি ড্রপ করুন।

>db.mycollection.drop()
true
>

আবারো ডেটাবেস এর মধ্যে কালেকশনের লিস্ট চেক করে নিন।

>show collections
mycol
system.indexes
tutorialspoint
>

drop() পদ্ধতি সত্য দেখাবে যদি সিলেক্টকরা কালেকশনগুলো সঠিকভাবে ড্রপ হয়। অন্যথায় এটি মিথ্যা দেখাবে ।

MongoDB Create Database

MongoDB ডেটাবেস তৈরি করা
লেখকঃ নয়ন চন্দ্র দত্ত

কি খবর সবার? আশা করছি সবাই ভাল আছেন। আজ আমি হাজির হয়েছি একটি নতুন টিউটোরিয়াল নিয়ে। আজ আমরা দেখব কীভাবে MongoDB ডেটাবেস তৈরি করা যায়। তাহলে আর কথা না
বাড়িয়ে আজকের টিউটোরিয়াল শুরু করি।

use কমান্ড
MongoDB use DATABASE_NAME ডেটাবেস তৈরি করতে বাবহৃত হয়। কমান্ড একটি নতুন ডেটাবেস তৈরি করে যদি এটা উপস্থিত না থাকে অন্যথায়, এটি বিদ্যমান ডেটাবেস এ ফিরে আসে।
সিনট্যাক্স
use DATABASE এর বেসিক বাক্য গঠন বিবৃতি নিম্নরূপঃ
use DATABASE_NAME

উদাহরণ:
আপনি যদি নাম দিয়ে একটি ডেটাবেস তৈরি করতে চান তাহলে use DATABASE বিবৃতি নিম্নরূপ হবেঃ
>use mydb
switched to db mydb

আপনার বর্তমান নির্বাচিত ডেটাবেস পরীক্ষা করার জন্য db কমান্ড ব্যবহার করুন
>db
mydb

যদি আপনি আপনার ডেটাবেস তালিকা চেক করতে চান তাহলে show dbs কমান্ড ব্যবহার করুন
>show dbs
local 0.78125GB
test 0.23012GB

আপনার তৈরি ডেটাবেস ( Mydb ) তালিকায় উপস্থিত নেই। ডেটাবেস প্রদর্শন করতে আপনি তাতে অন্তত একটি ডকুমেন্ট সন্নিবেশ করতে হবে।
>db.movie.insert({"name":"tutorials point"})
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB

MongoDB তে ডিফল্ট ডাটাবেস পরীক্ষা
আপনি যদি কোনো ডেটাবেস তৈরি না করে থাকেন তাহলে সংগ্রহগুলো টেস্ট ডেটাবেসের মধ্যে সংরক্ষিত হবে।

আশা করছি ভাল লেগেছে আজকের টিউটোরিয়াল। পরবর্তিতে MongoDB বিষয়ক আরো টিউটোরিয়াল নিয়ে হাজির হব। আজকের মত এই পর্যন্তই। সবাই ভাল থাকবেন আর কোন সমস্যা হলে নিশ্চই কমেন্ট করবেন ।
http://Bangla.SaLearningSchool.com