پیاده‌سازی محیط توسعه MongoDB با استفاده از NPM

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 28 مرداد 1397
دسته بندی ها : نود جی اس

مدیر پکیج‌های نود یا NPM در حقیقت جادویی بود که در دسترس برنامه‌نویسان قرار گرفت. این پکیج منیجر به شما اجازه می‌دهد که تعداد بسیار زیادی از کتابخانه‌ها و پکیج‌های کاربردی را به سادگی دانلود و نصب کنید. به همین دلیل npm به شما کمک بسیاری را برای پیاده‌سازی محیط‌های توسعه مختلف می‌کند، محیط محبوبی مانند بانک‌های اطلاعاتی NoSQL مبتنی بر JSON، یک مورد از این بانک‌های اطلاعاتی را می‌توان MongoDB نام برد.

در بین مزیت‌هایی که NoSQL بجای بانک‌های اطلاعاتی رابطه‌ای در اختیار ما قرار می‌دهند، قابلیت مقیاس‌دهی به صورت افقی است. این موضوع بدان معناست که ما می‌توانیم بانک اطلاعاتی‌مان را در سرور‌های مختلفی قرار دهیم و بارگذاری روی بانک اطلاعاتی را بالانس کنیم. این پردازش را sharding –جدا کردن- می‌نامند.

این موضوع همچنین برای مدیریت حجم عظیمی از داده‌ها که به صورت سریع ساختارشان تغییر می‌کند نیز مناسب است. 

برای اینکه کارمان را شروع کنیم ابتدا باید NPM و MongoDB را دریافت کرده و آن‌ها را روی کامپیوترتان نصب کنید.

برای آن دسته از افرادی که نمی‌دانند NPM چیست باید بگویم که NPM مدیر پکیج اصلی مربوط به نودجی‌اس است. برای MongoDB نیز با از نسخه Community استفاده می‌کنیم که برای انجام کارهای آزمایشی مناسب است. البته گزینه‌های مختلف دیگری نیز از MongoDB وجود دارد که می‌توانید آن‌ها را نیز مشاهده کنید.

من در این آموزش از لینوکس استفاده می‌کنم به همین دلیل قصد دارم بیشتر با Bash کارها را انجام دهم. بعد از اینکه پکیج نودجی‌اس که در آن NPM نیز وجود دارد را دانلود کردم، آن را در یک مسیر از حالت فشرده در می‌آورم. در مثال زیر من آن را در پوشه /usr/local/lib قرار دادم.

mv /home/myuser/Downloads/node-v8.11.2-linux-x64.tar.xz /usr/local/lib
cd /usr/local/lib && tar xz node-v8.11.2-linux-x64.tar.xz  

حال می‌توانید فایل home/.profile را تغییر دهید و path زیر را به آن اضافه نمایید:

#NodeJs
export NODEJS_HOME=/usr/local/lib/node-v8.11.2-linux-x64/bin
export PATH=$NODEJS_HOME:$PATH

بعد از اینکه چنین کاری را انجام دادید، دستور زیر را وارد کنید:

source ~/.profile

دستور source باعث می‌شود که دستور مربوط به فایل بالا اجرا شود، بنابراین متغیر محیطی path اضافه می‌شود.

حال نیاز است که به صورت دستی MongoDB را نیز دانلود و نصب کنیم. برای اینکار به ادامه آموزش توجه کنید.

ابتدا فایل مربوط به MongoDB را نصب کنیم، بعد از آن برای اینکه بتوانیم فایل‌های این بانک اطلاعاتی را نیز در path قرار دهیم، باید آن را در یک دایرکتوری استخراج نماییم. ما از همان دستورهای قبلی برای چنین کاری استفاده می‌کنیم. وارد فایل home/profile شده و دستور زیر را قرار دهید:

#MongoDB
export MONGO_HOME=/usr/local/lib/mongodb-linux-x86_64-debian81-3.6.4/bin
export PATH=$MONGO_HOME:$PATH

حال نیاز است که Community Server خودمان را با پورت پیشفرض ۲۷۰۱۷ اجرا کنیم. برای اینکار دستور زیر را اجرا نمایید:

mongod

حال قبل از اینکه به بانک اطلاعاتی متصل شویم، باید با استفاده از دستور apt پکیج mongodb-clients را دانلود نماییم:

apt install mongodb-clients

در نهایت می‌توانیم دستور زیر را اجرا کنیم:

mongo

حال به محیط MongoDB Shell فرستاده می‌شویم.

در محیط MongoDB به صورت پیشفرض بانک اطلاعاتی تحت عنوان test وجود دارد. می‌توانید از این موضوع با نوشتن db در محیط شل مطمئن شوید.

حال قصد داریم که از دستور زیر استفاده کنیم:

db.collectionName.insert({'any':'json'});

منظور از collectionName شامل هر نامی‌ست که می‌تواند در ذهن‌تان باشد و تابع insert() یکی از توابع برای افزودن مقداری از طریق مقادیر Json است. می‌توانید هر چیزی را داخل این آرگومان‌ها قرار دهید اما به شما پیشنهاد می‌دهم که ساختار درستی برای این قسمت در نظر بگیرید. 

بعد از اجرای دستور بالا می‌توانیم برای پی بردن به درستی عملیات insert از تابع زیر استفاده کنیم:

db.collectionName.find()

اگر پارامتر Json را در مرحله قبلی به درستی قرار نداده باشید، تمام سندهای موجود را به ما برمی‌گرداند. محیط MongoDB Shell همچنین مفسر جاوااسکریپت نیز است، بنابراین می‌توانید از جاوااسکریپت به صورت همزمان استفاده کنید:

var a = db.collectionName
a.find()

بخش مربوط به نودجی‌اس

حال قصد داریم که برای ارزیابی کلی به محیط ترمینال برگشته و یک دایرکتوری جدید با نام mongodbtest ایجاد کنیم. 

cd ~ && mkdir mongodbtest && cd mongodbtest/

بعد از اینکار دستور زیر را وارد کنید:

npm init 

با این کار یک فایل package.json ایجاد شده که در آن اطلاعات راجع به پکیج‌های شما ذخیره می‌شود. حال برای نصب کردن Mongodb آماده هستیم. برای اینکار دستور زیر را وارد کنید:

npm install --save mongodb

پرچم --save برای قرار دادن نام پکیج در فایل package.json استفاده می‌شود. این مورد قسمتی است که لزومات و مستقلات مربوط به شما در آن وجود دارد.

در پایان یک ویرایشگر متن را باز کرده و اسکریپت زیر را در آن قرار دهید:

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017';
MongoClient.connect(url, { useNewUrlParser:true } , function(error,database){
  console.log('Connected successfully');
  const testdb = database.db('test');
  testdb.collection('users').insertOne({name:'John',lastName:'Doe'});
  database.close();
});

حال در محیط ترمینال دستور مربوط به اجرای این اسکریپت را وارد کنید:

node script.js

همانطور که مشاهده می‌کنیم تابع connect() سه پارامتر دریافت می‌کند: URL، یک شئ و یک تابع. کار این تابع یا این است که پیغام خطا و ناموفق بودن را نشان دهد و یا اینکه بانک اطلاعاتی را به ما برگشت دهد. می‌توانیم چنین تابعی را در هر جایی که دوست داریم قرار دهیم، برای مثال می‌توانیم آن را در GET, POST, PUT, PATCH, DELETE و... قرار دهیم.

اگر عملیات به صورت موفقیت آمیز انجام شود، بعد از راه‌اندازی MongoDB Shell باید یک مجموعه با نام users را همراه با داده‌هایی مشاهده کنید.

برای اینکه بیشتر با این محیط کار کنید می‌توانید مستندات مربوط به CRUD مونگو‌دی‌بی را مطالعه نمایید.

منبع

مقالات پیشنهادی

8 دليلي كه نبايد از يك مديريت محتوا استفاده كنيد

من تمايل دارم افرادي رو پيدا كنم كه در قدم اول ميخوان به مشتريان چنين ايده اي رو، ترويج بدن كه اون ها ميتونن سايت خودشون رو "به راحتي به كمك يه واژه پ...

با استفاده از Laravel GeoIP موقعیت جغرافیایی کاربر را تعیین کنید

اخیرا نیاز به بررسی موقعیت جغرافیایی کاربر برای تعیین موقعیت محلی آنها داشتم. پکیج torann/geoip ساخته شده توسط Daniel Stainblack بسیار برای انجام این...

چگونه باهوش‌تر شویم؟ (طبقه گفته انیشتین)

اگر شما تغییر نمی‌کنید، بزرگ نمی‌شوید. اگر شما بزرگ نمی‌شوید، باهوش نیستید. انسان‌ها در تغییر و گسترش رشد می‌کنند؛ اما همچنان بلوک‌های داخلی و خارجی ب...

۵ راهی که توسعه دهندگان باعث می‌شوند به حرفه خود آسیب برسانند

توسعه وب یکی از آن جمله صنعت هایی است که همیشه در حال رشد است، رشد توسعه وب به این دلیل است که ما هر روزه از اینترنت و دنیای وب استفاده می‌کنیم. این ر...