آموزش NODE.JS – دیتابیس MongoDB

آموزش NODE.JS – دیتابیس MongoDB

در قسمت قبل با استفاده از تابع سراسری require در Node.js یک ماژول ساده درست کردیم که با استفاده از آن می توانستیم داده ها (اطلاعات فیلم) را در یک متغیر json ذخیره کنیم و با استفاده از متدی که خود آن را در ماژول تعریف کرده بودیم، اطلاعات فیلم را در کنسول نمایش دهیم. اما ویژگی که ماژول ما نداشت این بود که این اطلاعات را در یک دیتابیس ذخیره نمی کرد تا آن را دوباره بازیابی کنیم.  🙄

 

دیتابیس MongoDB

 

در این آموزش یاد خواهیم گرفت چطور از دیتابیس محبوب MongoDB استفاده کنیم. در این آموزش فرض شده است که خواننده هیچ اطلاعاتی درباره MongoDB ندارد و قصد دارد آن را نصب کند و دستورات اولیه آن را یاد بگیرد. اما در قسمت بعدی که به زودی منشتر خواهد شد این دو تکنولوژی محبوب یعنی MongoDB و Node.js را در کنار هم خواهیم دید.

 

معرفی MongoDB

 

MongoDB یک دیتابیس NoSQL مبتنی بر سند (document-based)، بسیار محبوب با عملکرد بالا می باشد. در مانگودیبی داده ها به عنوان یک سند در قالب مجموعه ای از کلیدهامقادیر ذخیره می شوند. شما می توانید چندین دیتابیس را در مانگودیبی تعریف کنید که هر کدام از دیتابیس ها شامل چندین زیر مجموعه مثل table باشد و آن مجموعه ها به سادگی شامل مجموعه از از اسناد باشد که به عنوان داده ذخیره شده در قالب کلید-مقدار است.

 

ساختمان داده تعریف شده در یک سند مانگودیبی به صورت BSON (Binary JSON) نامیده می شود. BSON یک نمایش دودویی برای JSON است که همچنین می تواند از انواع دادها مثل تاریخ پشتیبانی کند. که این ویژگی در یک فرمت ساده JOSN وجود ندارد. MongoDB برای عملکرد بهتر، می تواند JSON را به BSON و بالعکس تبدیل کند. همچنین کاربر می تواند عملیات ذخیره کردن، query و بازیابی را به عنوان JSON انجام دهد.

 

از ویکی‌پدیا

NoSQL مخفف not only sql به معنای نه تنها اس‌کیوال نامی است فراگیر برای رده ی گسترده ای از سامانه مدیریت پایگاه داده هایی که با نوع سنتی پایگاه داده های رابطه ای تفاوت های آشکار دارند . روشن ترین این تفاوت ها استفاده نکردن ازاس‌کیوال به عنوان زبان پرسش نخستین است . نمونه اش پایگاه داده‌های اکس‌ام‌ال و پایگاه داده‌های سند-گرا است . یکی از پیاده سازی های شناخته شده این نوع پایگاه داده ها کاوچ‌دی‌بی ساخت بنیاد نرم‌افزار آپاچی است .

 

شرکتهای بزرگ اینترنت، از جمله گوگل (BigTable)، آمازون (Dynamo )، لینکدین (Project Voldemort)، فیس بوک (Cassandra و HBase) سورس فورژ (MongoDB)، اوبونتو (CouchDB) طراحی و راه اندازی گروه پایگاه داده NoSQL را بر عهده دارند. بخش قابل توجهی از این پروژه ها متن باز و آزاد است.

 

نصب MongoDB

 

در این پست فرض شده است که شما MongoDB را می خواهید در Windows نصب کنید. نصب MongoDB بسیار راحت است، ابتدا وارد سایت https://www.mongodb.org/ شده و با در نظر گرفتن سیستم عاملی که استفاده می کنید، نسخه zip شده mongoDB را دانلود کرده و نیازی به دانلود نسخه اجرایی آن .msi نیست.

 

آموزش MongoDB و Node.js

 

وقتی zip را دانلود کردید آن را از حالت فشرده خارج سازید و در درایو مورد نظر مثل C:/ قرار دهید. توجه داشته باشید برای اینکه بتوانیم از هر کجای سیستم به mongo دسترسی داشته باشیم، باید آدرس نصب mongo را در PATH سیستم خود اضافه کنید. C:\mongodb\bin

 

مرحله بعد، دایرکتوری C:\data\db را بطور دستی ایجاد کنید.

 

تا اینجا دیتابیس MongoDB خود را نصب و  آماده سازی کردیم و حال نوبت اجرا آن است. ابتدا یک کنسول جدید باز کرده و دستور mongod را اجرا کنید و بعد از آن در یک کنسول جدید دیگر دستور mongo را اجرا کنید.

 

نصب mongodb

 

اگر به هر دلیلی با نصب MongoDB مشکل داشتید به راهنمای نصب MongoDB مراجعه کنید.


 

دستورات در خط فرمان MongoDB

 

اگر با خط فرمان دیتابیس هایی مثل MySQL کار کرده باشید، در ادامه خواهید دید که دستورات Mongo نیز به همان صورت است و بسیار هم سریعتر و راحتر از دیتابیس های SQL عمل می کند. در مرحله قبل دستور mongo را اجرا کردیم تا بتوانیم دستورات را وارد کنیم. من قصد دارم در ادامه برخی از دستورات بسیار پایه ای که لازم است بدانیم را مطرح کنم.

 

نمایش دیتابیس های در سرور MongoDB

 

یکی از ویژگی MongoDB این است که بعد از نصب نیازی به پیکربندی خاصی ندارد. برای اینکه بتوانیم در mongo لیست دیتابیس های موجود در سرور را مشاهده کنیم، دستور show dbs را در کنسول تایپ کنید، با این کار لیستی از دیتابیس ها در کنسول چاپ می شود. همانطور که مشاهده می کنید این دستور بسیار شبیه به دستور show databases در MySQL است.

 

نمایش لیست دیتابیس ها در mongodb

 

در نسخه جدید mongoDB از دستور show databases برای نمایش دیتابیس می شود استفاده کرد.

 

ساخت دیتابیس جدید

 

قبل از اینکه بخواهیم جدول های (table) مختلفی را در دیتابیس ایجاد کنیم و آن را با رکورد های جدید مقدار دهی کنیم، ابتدا باید یک دیتابیس جدید ایجاد کنیم. برای این کار از دستور use <database name> استفاده می کنیم. این دستور معادل دستور CREATE DATABASE <database name> در MySQL می باشد.

 

ساخت دیتابیس در mongo

 

همانطور که مشاهده می کنید با دستور فوق دیتابیس جدیدی با نام my_new_db را در سرور اضافه کردیم. توجه داشته باشید که با دستور use <database name> می توانیم بین دیتابیس ها سوئیچ کنیم. بعنی اگر دیتابیسی با نام test داشته باشیم و بخواهیم از آن استفاده کنیم، باید دستور use test را اجرا کنیم.

 

ساخت جدول در دیتابیس

 

حال که دیتابیس را ایجاد کرده ایم، اجازه دهید یک جدول جدید به نام users در آن ایجاد کنیم تا بتوانیم چند رکورد کاربر را در آن ذخیره کنیم. برای این کار دستور زیر را در کنسول اجرا کنید:

 

 

همانطور که واضح است، دستور فوق ابتدا جدول users را در دیتابیس my_new_db ایجاد می کند و به دنبال آن فیلدهایی را همراه با مقادری برای جدول تعریف می کند.

 

اضافه کردن داده در mongodb

 

توجه داشته باشید شما می توانید هر تعداد فیلد و مقادیری را به مثال فوق اضافه کنید، برای تست چندین رکورد مختلف را به users اضافه کنید.

 

بازیابی داده ها

 

حال که جدول خود را با مقادیری پر کردیم، می توانیم داده های وارد شده را با دستور زیر بازیابی کنیم:

 

 

این دستور باعث می شود تمام رکورد های ذخیره شده در users را در کنسول چاپ کند:

 

بازیابی داده ها از mongo-db

 

با دستور show collections می توانید لیست جدول های موجود در دیتابیس را مشاهده کنید، این دستور شبیه به دستور show tables در دیتابیس MySQL است.

تا اینجا با دستورات پایه ای این دیتابیس محبوب کار کردیم، ولی فکر می کنم به اندازه کافی وسوسه شده اید که با Mongo کار کنید. 🙂 اما شما می توانید برای یادگیری بیشتر به وب سایت MongoDB مراجعه کنید و مستندات آن را مطالعه کنید. تا آن موقع که مشغول بررسی مستندات آن هستید، من هم سعی می کنم قسمت بعدی را که ترکیبی از Node.js و MongoDB است را آماده کنم. 😉