آموزش اتصال جاوا اسکریپت به Mongo DB توسط Node.js:
پیکر بندی پایگاه داده ی Mongo DB با Node.js:
جمع بندی
در این مقاله قصد داریم به ساخت پایگاه داده ی Mongo DB و انجام عملیات CRUD و نحوه ی اتصال آن به نود جی اس Node.js بپردازیم. شما در پایان این مقاله میتوانید یکی از مهمترین ماژول های دیتابیس که Mongo DB میباشد را پیاده سازی و به Node.js متصل کنید.پس با ما همراه باشید.
Mongo DB چیست؟
Mongo DB یک پایگاه داده ی متن باز و رایگان مانند Mysql است که از سال ۲۰۰۹ انتشار آن آغاز شده است. Mongo DB محدودیت های سایر پایگاههای داده را ندارد و همچنین یک پایگاه داده سندگرا بوده در نتیجه برخلاف پایگاههای داده رابطه ای اسناد شبیه به JSON را مدیریت میکند برای آشنایی بیشتر با Mongo DB پیشنهاد میکنیم مقاله ی Mongo DB چیست را مطالعه کنید.
درباره ی Node.js بخوانیم
Node.js یک پلتفرم متن باز و رویداد محور است که بر پایه ی موتور جاوا اسکریپت گوگل کروم پایه گذاری شده است، از Node.js برای گسترش برنامههای سمت سرور و تحت شبکه استفاده میکنند. جهت کار با Node.js در پروژه های خود لازم است ابتدا آن را روی کامپیوتر خود نصب کنید اگر برای اولین بار است که از Node.js استفاده میکنید پیشنهاد میکنیم مقاله ی آموزش نصب Node.js را مطالعه کنید.
اگر به مباحث برنامه نویسی Node.js علاقه مندید و تمایل دارید از این زبان برنامه نویسی کسب درآمد کنید پیشنهاد میکنیم در دوره آموزش node js شرکت کنید.
ساخت دیتابیس Mongo DB:
قدم اول: برای استفاده از دیتابیس Mongo DB ابتدا باید آن را فعال نماییم برای این کار دستور زیر را در ترمینال (command line) وارد میکنیم:
net start Mongo DB
در نتیجه ی دستور بالا پیام زیر نشان داده میشود:
The Mongo DB service is starting The Mongo DB service was started successfully
قدم دوم : برای ساخت پایگاه داده و یا انجام هرگونه تغییرات در پایگاه داده ابتدا باید وارد پوسته ی Mongo DB بشویم. برای این کار کلمه ی زیر را درترمینال وارد میکنیم:
mongo
حال ما وارد پوسته ی Mongo DB شده ایم و آماده ی ساخت دیتابیس هستیم. قدم سوم : برای ساخت پایگاه داده از فرمول زیر استفاده میکنیم:
use Market_db
در دستور بالا use کلمه ی کلیدی و Market_db نام پایگاه داده ای است که با رعایت قوانین نام گذاری در پایگاه داده انتخاب شده است . برای نمایش همه ی پایگاههای داده قطعه کد زیر را در ترمینال وارد میکنیم:
show dbs
نتیجه ی قطعه کد بالا:
admin 0.000GB Market_db 0.000GB local 0.000GB
دقت کنید در نتیجه ی نشان داده شده دو پایگاه داده را میبینیم که ما ایجاد نکردیم ولی به طور پیش فرض در Mongo BD ایجاد شده است و حجم آنها صفر گیگا بایت هست. پایگاه داده ی ما (Market_db)، چون داده ای فعلا درونش ذخیره نکرده ایم حجم آن صفر است.
بیشتر بدانید: اگر قبلا پایگاه داده ای را ایجاد کرده باشید میتوانید با استفاده از قطعه کد بالا به آن متصل شوید. برای مثال فرض کنید پایگاه داده ی Employees را ایجاد کرده اید با اجرای قطعه کد زیر به Employees متصل میشوید :
use Employees
پیکر بندی پایگاه داده ی Mongo DB:
در ادامه ی مقاله ی آموزش اتصال جاوا اسکریپت به Mongo DB توسط Node.js، پیکربندی پایگاه داده ی Mongo DB را انجام میدهیم. در پایگاه داده ی Mongo DB همانند پایگاه داده ی MySql با سه مفهوم رو به رو هستیم . Collection که هم مفهوم با table یا همان جدول در Mysql است . Document که هم مفهوم با row یا همان ردیف در Mysql است . Column که هم مفهوم با field در Mysql است . قصد داریم در پایگاه داده ی Market_ db ، یک collection با نام users ، سه document و سه column را بسازیم . - نحوه ی ایجاد Collection در Market_db: برای ایجاد collection ، از کلمه ی کلیدی .db و سپس نام Collection استفاده میکنیم:
db.users
با قطعه کد فوق ما یک collection با نام users ایجاد کردیم. - نحوه ی ایجاد document و column در Market_db: برای ایجاد document و column در users از دستور insert به صورت زیر استفاده میکنیم:
با اجرای قطعه کد بالا سه document با نامهای name، age، password و سه column با مقادیر Ali، 28،@123 در users ایجاد میشود. برای نمایش محتویات users از دستور زیر استفاده میکنیم:
برای اضافه کردن document و column کافی است از دستور insert مانند بالا استفاده کنید. برای مثال فرض کنیم میخواهیم یک کاربر دیگر را به collection اضافه کنیم در این صورت با استفاده از کد زیر document و column را اضافه میکنیم:
- نحوه ی بروزرسانی document و column در پایگاه داده Market_db: برای این کار از update استفاده میکنیم. در ادامه قصد داریم مقدار document با نام name را از ali به Moin تغییر دهیم :
- نحوه ی حذف document و column در پایگاه داده Market_db: برای این کار از remove استفاده میکنیم. در قطعه کد زیر قصد داریم document با نام password را پاک کنیم :
- نحوه ی حذف collection در Market_db: برای حذف کل collection از دستور زیر استفاده میکنیم:
db.users.drop()
نتیجه ی قطعه کد بالا true میباشد که به معنی حذف collection است.
true
آموزش اتصال جاوا اسکریپت به Mongo DB توسط Node.js:
برای ایجاد اتصال ابتدا باید درایور مربوط به Mongo DB را درون Node.js نصب کنیم و این کار را با استفاده از npm محبوب انجام میدهیم. دستور زیر را در ترمینال وارد میکنیم:
npm install mongodb --save
با اجرای قطعه کد بالا درایور مربوط به Mongo DB نصب میشود. با کدsave-- اطلاعات مربوط به پکیج را داخل pakage.js قرار میدهیم تا به راحتی بتوانیم به فایلها دسترسی داشته باشیم. و در نهایت با چند قطعه کد ساده به Mongo DB متصل میشویم:
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb:// localhost/Market_db';
MongoClient.connect(url, function(err, db){
var cursor = db.collection(Market_db).find();
cursor.each(function(err, doc) {
console.log(doc);
});
});
در خط اول MongoClient را که مربوط به کتابخانه ی MongoDB میباشد با استفاده از require فراخوانی کرده و دورن یک متغیر با نام MongoClient ذخیره میکنیم. خط دوم به پایگاه داده ی MongoDB که روی لوکال نصب شده است متصل میشویم. توجه داشته باشید که در خط دوم پس از local host نام پایگاه داده ای که میخواهیم به آن متصل شویم را میآوریم (برای مثال Market_db ) و در اینجا Market_db اسم پایگاه داده ای میباشد که میخواهیم به آن متصل شویم.در ادامه هم با یک دستور شرطی ساده اتصال خود به پایگاه داده را چک میکنیم.
حال اگر کد بالا را در یک فایل، مثلا با نام mongodbConnect.js در یک درایو دلخواه (در اینجا درایو D ) درون پوشه Node ذخیره کنیم، با اجرای آن با پیغام زیر روبرو میشویم:
D:\Node>node MongodbConnect.js Connected to sweet mongodb
به همین سادگی و با همین چند خط کد ساده، پایگاه دادهی ساخته شده توسط Mongo DB را به جاوا اسکریپت متصل کردیم.
پیکر بندی پایگاه داده ی Mongo DB با Node.js:
ما پایگاه داده ی Market_db را ایجاد کرده و به javascript با استفاده از Node.js متصل کردیم. در ادامه ی مقاله ی آموزش اتصال جاوا اسکریپت به Mongo DB توسط Node.js، قصد داریم تا با استفاده از کدهای java script یک collection،document و column را به پایگاه داده اضافه کرده و اطلاعات موجود در پایگاه داده را استخراج کنیم (اصطلاحا واکشی کنیم). -نحوه ی افزودن یک collection به پایگاه داده ی Market_db
برای اضافه کردن یک collection جدید در پایگاه داده با استفاده از Node.js از متد create collection استفاده میکنیم. در قطعه کد زیر با استفاده از این متد میخواهیم collection، customers را به پایگاه داده اضافه کنیم:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost/Market_db";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.createCollection("customers", function(err, res) {
if (err) throw err;
console.log("Collection created!");
});
});
با اجرای قطعه کد بالا collection با نام customers به پایگاه داده ی Market_db افزوده میشود. -نحوه ی افزودن یک document و column در پایگاه داده ی Market_db: برای این کار از متد insertOne از کتابخانه ی MongoDB استفاده میکنیم. به قطعه کد زیر توجه کنید:
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/Market_db';
MongoClient.connect(url, function(err, db) {
db.collection('customers').insertOne({
customerName: "Ehsan" ,
customerPass: @345
});
});
در قطعه کد بالا با استفاده از متد insertOne، دو document با عناوین customerName و customerPass با columnهای Ehsan و @345 ساختیم. حال برای بررسی اینکه دادهها به درستی در پایگاه داده درج شده است یا خیر، ابتدا با توجه به مواردی که قبلا در این مقاله گفته شد وارد پایگاه داده Market_db در ترمینال شده و قطعه کد زیر را وارد میکنیم:
db.customers
با اجرای قطعه کد فوق وارد collection ذکر شده (customers) میشویم. حال قطعه کد زیر را اجرا میکنیم:
db.customers.find().pretty ()
با اجرای دستور فوق ، نتیجه ی زیر را مشاهده میکنیم:
-نحوه ی بروزرسانی documentها در پایگاه داده ی Market_db:
اسناد را میتوان در یک مجموعه با استفاده از کد updateOne از کتابخانه ی MongoDB بروزرسانی کرد. در قطعه کد زیر میخواهیم مقدار customerName را از Ehsan به Masih تغییر دهیم :
- حذف document و column در پایگاه داده ی Market_db: برای حذف یک document از مجموعه ی customers از روش deleteOne استفاده میکنیم. به قطعه کد زیر دقت کنید:
در کد بالا customerName با column، Masih را حذف میکنیم. برای دیدن نتیجه از روش ذکر شده در دو مورد بالا استفاده میکنیم. - نحوه ی جستجو و واکشی اطلاعات در پایگاه داده ی Market_db در Node.js: برای این کار از متد find از کتابخانه ی Mongo DB استفاده میکنیم. به قطعه کد زیر توجه کنید:
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb:// localhost:27017/Market_db';
MongoClient.connect(url, function(err, db) {
var cursor = db.collection('customers').find();
cursor.each(function(err, doc) {
console.log(doc);
});
});
در قطعه کد بالا ما یک اشاره گر با نام cursor تعریف میکنیم اشاره گرها برای اشاره به یک رکورد خاص در پایگاه داده استفاده میشوند. همچنین در ادامه مجموعه یا collection که ساختیم با نام customers را برای واگذاری سوابق مشخص میکنیم. در ادامه از متد ()find برای مشخص کردن اینکه میخواهیم همه ی اسناد را از مجموعه customers استخراج کنیم ، استفاده میکنیم. و در بخش پایانی از یک تابع جهت چاپ محتوای این سند استفاده میکنیم.
جمع بندی
در این مقاله یاد گرفتیم چطور یک پایگاه داده ی Mongo DB بسازیم و آن را پیکربندی کنیم و همچنین آموختیم پایگاه داده ی ایجاد شده را چگونه با استفاده از Node.js به زبان جاوا اسکریپت متصل کنیم. در ادامه آموختیم چگونه اطلاعات موجود در پایگاه داده Mongo DB را با استفاده از Node.js استخراج کنیم و همچنین پایگاه داده ساخته شده را چگونه در Node.js پیکربندی کنیم. به همین سادگی میتوانیم یک پایگاه داده را در Mongo DB ایجاد کرده و با استفاده از Node.js در پروژه ی خود استفاده کنیم. با استفاده از جاوا اسکریپت شما میتوانید بدون هیچ مشکلی فقط به توسعه ی برنامه خود فکر کنید.
اگر به یادگیری بیشتر در زمینه جاوا اسکریپت علاقه داری، با شرکت در دوره آموزش جاوا اسکریپت در کمتر از یکسال به یک متخصص JS همه فن حریف تبدیل میشوی که آماده ی استخدام، دریافت پروژه و یا فول-استک شدن هستی.
سلام وقت بخیر
لطفا در مورد تفاوت mongoose و mongodb یه راهنمایی بکنید؟
اینکه این دو ماژول چه فرقی با هم دارند
نازنین کریمی مقدم۱۵ بهمن ۱۴۰۲، ۰۶:۰۲
درود
MongoDB یک پایگاه داده و Mongoose یک کتابخانه معروف Node.js برای استفاده از MongoDB هست.
حسین۳۱ شهریور ۱۴۰۲، ۰۹:۴۷
سلام وقت بخیر. در فایل mongorc.js یک تیکه کد جاوا اسکریپت نوشتم که میخوام در محیط shell mongo در ترمینال لینوکس قبل < یا prompt اسم دیتابیسم رو بنویسه. یعنی در shell mongo نوشتم : use db اسم دیتابیسم قبل علامت prompt بیاد. این کد من در فایل mongorc.js هست :
prompt = function(){
return db + '> ';
}
نازنین کریمی مقدم۳۰ مهر ۱۴۰۲، ۰۷:۰۳
درود
متوجه سوالتون نشدم متاسفانه!
۲۰ بهمن ۱۴۰۰، ۱۱:۲۶
سلام
چطوری میشه به دیتابیس مانگو دیبی که روی سرور وی پی اس ایجاد شده متصل شد ؟
شما الان از local host استفاده کردین اما خب این کار عملا بی فایده است !
دیتابیسی که روی سیستم خودم ایجاد کنم به دردی نمیخوره
چطور میتونم به دیتابیسی که روی وی پی اس ایجاد شده متصل شد ؟
همه ی انجمنهای برنامه نویسی از جمله استک اورفلو و کورا رو زیر و رو کردم اما نتونستم به نتیجه برسم