متخصصین علوم رایانه کشور

Learning MEAN Framework
متخصصین علوم رایانه کشور

۷ مطلب با موضوع «MONGODB» ثبت شده است

۲۴
آذر

نسخه: ۱.6

دوستان خوب و صمیمی، در این مطلب، می‌خواهم منابع مفیدی که در طی این دو سال، جستجو کرده و به کار گرفته‌ام را، به شما عزیزان معرفی نمایم. امیدوارم که مورد توجه و عنایت قرار بگیرد.


محیط برنامه‌نویسی: Visual Studio Code - نشانی: https://code.visualstudio.com

- محیط برنامه‌نویسی به صورت آنلاین: Cloud 9 IDE - نشانی:‌https://c9.io

Node.js - نشانی: https://nodejs.org/en

بانک اطلاعاتی: MongoDB - نشانی:‌ https://www.mongodb.org - https://www.mongodb.com

- لینک مستقیم به قسمت دانلود: https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl

سایتی که ۵۰۰ مگابایت فضای رایگان، برای هاست کردن بانک‌های اطلاعاتی MongoDB به شما تخصیص می‌دهد: MongoLab - نشانی: https://mongolab.com

ابزاری که مانند SQL Server Management Studio عمل کرده و برای بانک‌های اطلاعاتی MongoDB مورد استفاده قرار می‌گیرد: RoboMongo - نشانی: http://robomongo.org

مدیریت سورس‌کدها: Git (گیت) - نشانی: http://git-scm.com

بهترین ابزار Visual، برای استفاده از Git (گیت): SourceTree - نشانی: https://www.sourcetreeapp.com

بهترین هاست، برای درج سورس‌کدها به صورت Public (عمومی): GitHub - نشانی: https://github.com

بهترین هاست، برای درج سورس‌کدها به صورت Private (خصوصی): VisualStudio - نشانی:‌ https://www.visualstudio.com

ابزاری برای Google Chrome در جهت ارسال داده به سایت: PostMan - نشانی: http://www.getpostman.com

ابزاری برای رصد کردن ترافیک و Packet های شبکه: Fiddler - نشانی: http://fiddler2.com


پکیج‌ها و ماژول‌های مهم و کاربردی که معمولا در محیط Node.js به آنها نیاز داریم:


پکیج‌هایی که توصیه می‌شود، به صورت Global نصب شوند:

TSD
https://www.npmjs.com/package/tsd
http://definitelytyped.org/tsd
https://github.com/DefinitelyTyped/DefinitelyTyped

Express Generator
https://www.npmjs.com/package/express-generator
http://expressjs.com/en/starter/generator.html

Nodemon
https://www.npmjs.com/package/nodemon
http://nodemon.io

Yeoman
https://www.npmjs.com/package/yo
http://yeoman.io

Bower
https://www.npmjs.com/package/bower
http://bower.io

Grunt
https://www.npmjs.com/package/grunt-cli
http://gruntjs.com

Angular Generator
https://www.npmjs.com/package/generator-angular

Karma Generator
https://www.npmjs.com/package/generator-karma

پکیج‌هایی که توصیه می‌شود، به صورت Local نصب شوند:

Express.js
https://www.npmjs.com/package/express
http://expressjs.com/en/index.html

Underscore.js
https://www.npmjs.com/package/underscore
http://underscorejs.org

Colors
https://www.npmjs.com/package/colors

Body Parser
https://www.npmjs.com/package/body-parser

Jade
https://www.npmjs.com/package/jade
http://jade-lang.com

Socket IO
https://www.npmjs.com/package/socket.io
http://socket.io

MongoDB
https://www.npmjs.com/package/mongodb

Mongoose
https://www.npmjs.com/package/mongoose
http://mongoosejs.com

Mocha
https://www.npmjs.com/package/mocha

Morgan
https://www.npmjs.com/package/morgan

Cookie Parser
https://www.npmjs.com/package/cookie-parser

Passport
https://www.npmjs.com/package/passport
http://passportjs.org

Node Mailer
https://www.npmjs.com/package/nodemailer

Bcrypt
https://www.npmjs.com/package/bcrypt
https://www.npmjs.com/package/bcrypt-nodejs

Json Web Token
https://www.npmjs.com/package/jsonwebtoken

برای اطلاع از Global NPM Package هایی که نسخه جدیدی برای آنها وجود دارد، از دستور ذیل استفاده می‌کنیم:

npm outdated -g --depth=0

برای به روز رسانی تمامی NPM Package هایی که به صورت Global نصب شده‌اند، از دستور ذیل استفاده می‌کنیم:

npm update -g

برای اطلاع از Local NPM Package هایی که نسخه جدیدی برای آنها وجود دارد، از دستور ذیل استفاده می‌کنیم:

npm outdated

برای به روز رسانی تمامی NPM Package هایی که به صورت Local نصب شده‌اند، از دستور ذیل استفاده می‌کنیم:

npm update

دو نکته بسیار مهم:

۱. قبل از اقدام به نصب و یا به روز رسانی NPM Package ها، حتما به سایت Node مراجعه کرده و آخرین نسخه آنرا دریافت و نصب نمایید.

۲. با توجه به اینکه برنامه NPM برای نصب NPM Package ها، به صورت پیش‌فرض از پروتکل https استفاده می‌کند، و به لطف مخابرات کشور عزیزمان، که همیشه ما را مورد لطف و عنایت خود داشته و دارد! نصب اکثر پکیج‌ها با خطا مواجه می‌شود. لذا با استفاده از دستور ذیل، شما به برنامه NPM‌ اعلام می‌کنید، که به جای استفاده از پروتکل https، از پروتکل http برای نصب استفاده نماید:

npm config -g set registry http://registry.npmjs.org/

انشاءالله در رابطه با هر یک از Package های فوق، توضیحات مبسوطی خواهم داد.

دوستان خوبم، لطفا در صورتی که لینکی به درستی کار نمی‌کرد، به من اطلاع دهید...

  • داریوش تصدیقی
۲۴
آبان

نکاتی در رابطه با حذف اسناد (Documents) و حذف مجموعه‌ها (Collections)

برای اطلاعات (اسناد) از دستور remove، استفاده می‌کنیم. در صورتی که بخواهیم، کلیه اسناد مربوط به مجموعه users را حذف نماییم، از دستور ذیل استفاده می‌کنیم:

> db.users.remove( {} );

دقت کنید که در دستور فوق، به عنوان پارامتر ورودی دستور remove، از {}‌ استفاده کرده‌ایم. در نسخه‌های قبل از ۲.۶ بانک اطلاعاتی MongoDB، در صورتی که صرفا از دستور ()remove، و بدون پارامتر استفاده می‌کردیم، کلیه اسناد حذف می‌گردیدند، ولی از نسخه ۲.۶ به بعد، نوشتن {} الزامی است.

دقت داشته باشید که دستور فوق، کلیه اسناد مربوط به مجموعه users، را حذف کرده، ولی شاخص‌های (indexes)، آنرا را حذف نمی‌کند!

برای حذف مجموعه users، از دستور drop و به شکل ذیل استفاده می‌کنیم:

> db.users.drop();

دقت داشته باشید که دستور فوق، علاوه بر حذف کلیه اسناد و مجموعه users، کلیه شاخص‌های مربوط به مجموعه users را نیز حذف خواهد کرد.

در صورتی که بخواهیم برای حذف اسناد از شرطی استفاده نماییم، می توانیم شرط خود را در قالب یک عبارت JSON، اعلام نماییم.

می‌خواهیم کلیه اسناد users که مقدار فیلد "firstName" آنها، "Dariush" می‌باشد را حذف نماییم. برای این منظور از دستور ذیل استفاده می‌کنیم:

> db.users.remove( { "firstName" : "Dariush" } );

می‌خوایم کلیه اسناد users که مقدار فیلد "age" آنها، بزرگ‌تر از ۲۰ می‌باشد را حذف نماییم. برای این منظور از دستور ذیل استفاده می‌کنیم:

> db.users.remove( { "age" : { $gt : 20 } } );

در صورتی که بخواهیم تنها یک سند، با توجه به شرط مذکور حذف گردد، تنها کافی است که بعد از پارامتر {}، از true و یا عدد ۱ استفاده نماییم.

می‌خواهیم اولین سندی از مجموعه users، که فیلد "firstName"، آن برابر مقدار "Dariush" می‌باشد را حذف نماییم. برای این منظور از یکی از دستورات ذیل استفاده می‌کنیم:

> db.users.remove( { "fristName" : "Dariush" } , 1 );

> db.users.remove( { "fristName" : "Dariush" } , true );


  • داریوش تصدیقی
۱۷
آبان

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

با دستور ذیل فهرست کلیه اسناد (کاربران) موجود در مجموعه users نمایش داده می شود:

> db.users.find();

با استفاده از یک عبارت JSON و ارسال آن به عنوان پارامتر ورودی find، می توانیم اسناد خاصی (محدود شده) را بدست آوریم. به عنوان نمونه، با استفاده از دستور ذیل می‌توانیم فهرست اسنادی (کاربرانی) را مشاهده نماییم که نام آنها دقیقا Dariush می‌باشد:

> db.users.find( { "firstName" : "Dariush" } );

اصطلاحا به این پارامتر ورودی، Criteria گفته می‌شود.

با استفاده از دستور ذیل می‌توانیم، فهرست کاربرانی که سن آنها بزرگتر از ۲۰ سال می‌باشد را مشاهده نماییم:

> db.users.find( { "age" : { $gt : 20 } } );

با استفاده از دستور ذیل می‌توانیم، فهرست کاربرانی که سن آنها کمتر از ۳۰ سال می‌باشد را مشاهده نماییم:

> db.users.find( { "age" : { $lt : 30 } } );

با استفاده از دستور ذیل می‌توانیم، فهرست کاربرانی را که سن آنها بزرگتر یا مساوی ۲۰ سال می‌باشد را مشاهده نماییم:

> db.users.find( { "age" : { $gte : 20 } } );

با استفاده از دستور ذیل می‌توانیم، فهرست کاربرانی که سن آنها کمتر یا مساوی ۳۰ سال می‌باشد را مشاهده نماییم:

> db.users.find( { "age" : { $lte : 30 } } );

با استفاده از دستور ذیل می‌توانیم، فهرست کاربرانی که سن آنها بزرگتر از ۲۰ سال و کوچکتر از ۳۰ سال می‌باشد را مشاهده نماییم (دقت داشته باشید که در این درس از مفهموم AND استفاده شده است):

> db.users.find( { "age" : { $gt : 20 } , "age" : { $lt : 30 } } );

با استفاده از دستور ذیل می‌توانیم، فهرست کاربرانی که سن آنها کمتر از ۲۰ سال یا بزرگتر از ۳۰ سال می‌باشد را مشاهده نماییم (دقت داشته باشید که در این درس از مفهموم OR استفاده شده است):

> db.users.find( { $or : [ { "age" : { $lt : 20 } } , { "age" : { $gt : 30 } } ] } );

نکته: در درس‌های قبل تا حدودی با ساختار عبارات JSON آشنا شدیم. ولی بد نیست که نکته دیگری را نیز به آن اضافه نماییم. با استفاده از [ ] می‌توانیم یک آرایه (Array) تعریف کنیم. همانطور که در آخرین دستور فوق ملاحظه می کنید، دو شرط مربوط به کوچکتر از ۲۰ سال بودن سن و نیز بزرگتر از ۳۰ سال بودن سن، به عنوان دو عبارت JSON، در داخل یک آرایه قرار گفته‌اند.

نکته: یکی از نکاتی که باید بدان اشاره نماییم، آن است که تمام پارامترهای ورودی که از این پس به توابع MongoDB ارسال می‌کنیم، باید دارای ساختار JSON باشند. اجازه دهید که با تابع دیگری به نام sort آشنا شویم.

با استفاده از تابع sort و ارسال یک عبارت JSON به آن، مشخص می‌کنیم که نتیجه اطلاعات، مرتب شده بر اساس چه فیلد و یا فیلدهایی نمایش داده شوند. فرض کنید که می خواهیم فهرست کاربران را مرتب شده بر حسب سن آنها بدست آوریم، برای این منظور از دستور ذیل استفاده می‌کنیم:

> db.users.find().sort( { "age" : 1 } );

در مثال فوق، عدد یک (۱) مشخص می‌کند که می‌خواهیم نتیجه اطلاعات (فهرست کاربران)، مرتب شده بر روی فیلد سن، و به صورت از کوچک به بزرگ (Ascending) نمایش داده شوند. در صورتی که به جای عدد یک (۱) از عدد منفی یک (۱-) استفاده نماییم، اطلاعات کاربران، مرتب شده بر روی فیلد سن، و به صورت از بزرگ به کوچک (Descending) نمایش داده خواهند شد.

فرض کنید که می‌خواهیم فهرست کاربران را مرتب شده برحسب سن (از کوچک به بزرگ) و نیز نام آنها (از بزرگ به کوچک) مشاهده نماییم. برای این منظور از دستور ذیل استفاده می‌کنیم:

> db.users.find().sort( { "age" : 1 , "firstName" : -1 } );

  • داریوش تصدیقی
۱۴
آبان

فرض کنید که در بانک اطلاعاتی test، قرار داریم. حال می‌خواهیم اقدام به ایجاد یک مجموعه (Collection) کرده، و در آن، یک سند (Document) درج (ایجاد) نماییم. نکته جالب این است که بر خلاف بانک‌های اطاعاتی RDBMS، که ابتدا جدول را با فیلدهای مشخص و با نوع خاص ایجاد کرده و سپس اقدام به درج (ایجاد) اطلاعات می‌کنیم، در بانک‌های اطلاعاتی NoSQL، خصوصا MongoDB، تنها کافی است که مستقیما اقدام به درج اطلاعات (سند) نماییم. با درج اولین سند، به طور خودکار مجموعه مورد نظر ایجاد می‌گردد. برای درج سند، تنها کافی است که پس از کلیدواژه db، نام مجموعه را نوشته، و پس از آن، از دستور insert، استفاده کرده و سند خود را در قالب ساختار JSON بنویسیم. در نمونه ذیل، فرض بر آن است که می‌خواهیم نام مجموعه مورد نظر، users باشد:

> db.users.insert( { "firstName" : "Dariush", "lastName" : "Tasdighi" } );
writeResult({ "nInserted" : 1 })

به همین سادگی! با دستور فوق، ابتدا مجموعه‌ای به نام users، ایجاد شده و سپس در داخل آن، یک سند، با دو فیلد به نام‌های firstName و lastName و با مقادیری که مشاهده می‌کنید، ایجاد می‌گردد.

عبارتی که به عنوان پارامتر ورودی تابع insert، نوشته شده است، یک عبارت JSON می‌باشد.

اجازه دهید قبل از ادامه بحث، کمی در مورد عبارات JSON، صحبت کنیم. به طور کلی، ایجاد یک عبارات JSON، بسیار ساده است! کافی است که در ابتدا و انتهای آن، از {} استفاده کرده، و در داخل آن، فیلدها را در داخل "" قرار داده، و سپس مقدار هر فیلد را پس از (:) نوشته، و برای جدا کردن فیلدها و مقادیرشان از دیگر فیلدها از (,) استفاده نماییم. توجه داشته باشید که مقادیر متنی هر فیلد، باید در داخل "" نوشته شود و برای مقادیر عددی (اعم از صحیح و یا اعشاری) و نیز مقادیر true و false، که مقادیر Boolean می‌باشند، نیازی به نوشتن "" وجود ندارد. به مثال ذیل توجه کنید:

{ "fullName" : "Dariush Tasdighi", "age" : 42, "salary" : 120.12, "active" : true }

مجددا در مورد عبارات JSON، مطالبی خواهیم گفت. ولی در حال حاضر، کفایت می‌کند.

با استفاده از دستور show collections می‌توانیم فهرست کلیه مجموعه‌های موجود در بانک اطلاعاتی جاری (test) را مشاهده نماییم:

> show collections
system.indexes
users

مجددا از دستور show dbs استفاده می‌کنیم، تا ببینیم که آیا بانک اطلاعاتی test، رسما ایجاد شده است یا خیر؟

> show dbs
local 0.078GB
test  0.078GB

همانگونه که ادعا کردیم، با ایجاد اولین سند، به طور خودکار، ابتدا بانک اطلاعاتی test، و پس از آن مجموعه users ایجاد می‌گردد.

با استفاده از دستور find می‌توانیم، فهرست اسناد (اطلاعات) موجود در یک مجموعه را مشاهده کنیم:

> db.users.find();
{ "_id" : ObjectId("563bb647ab7cbdeddbb081f8"), "firstName" : "Dariush", "lastName" : "Tasdighi" }

توجه: دستور find، آن هم به شکل فوق، دقیقا معادل دستور SELECT * FROM users در SQL می‌باشد.

توجه: همانگونه که مشاهده می‌کنید، MangoDB، پس از درج (ایجاد) هر سند، به طور خودکار، یک فیلد به نام id_ و با مقداری تصادفی ولی کاملا منحصر به فرد، ایجاد می‌کند!

 

این مطلب هنوز به اتمام نرسیده است!

  • داریوش تصدیقی
۱۳
آبان

همانگونه که در مطلب قبلی عنوان گردید، با اجرای دستور MongoD، سرویس بانک اطلاعاتی، راه اندازی شده و قابل استفاده می‌باشد. دقت داشته باشید که از این پس پنجره Windows Command Prompt، دیگر قابل استفاده نمی‌باشد! و برای ادامه عملیات باید از پنجره دیگری استفاده نماییم. برای اینکه سرویس بانک اطلاعاتی راه‌اندازی شده را متوقف کنیم، تنها کافی است، وارد پنجره مربوط به آن شده، و از دکمه‌های ترکیبی CTRL + C استفاده نماییم.

در حالی که این پنجره باز می‌باشد، برای ادامه عملیات، پنجره Windows Command Prompt‌ دیگری باز کرده و در آن مجددا، وارد درایو C‌ و سپس پوشه MongoDB می‌شویم.

حال برای ارتباط برقرار کردن با سرویس بانک اطلاعات MongoDB، از دستور Mongo، استفاده می‌کنیم:

C:\MongoDB>Mongo
MongoDB shell version: 3.0.7
connecting to: test
>

با اجرای دستور فوق، وارد محیط مدیریت بانک اطلاعاتی MongoDB‌ می‌شویم. دقت داشته باشید که اولا در همان اجرای اولیه دستور فوق، بانک اطلاعاتی به نام local ایجاد شده، و دوما سیستم، به طور پیش فرض، تمایل به اتصال بانک اطلاعاتی به نام test دارد، هر چند که هنوز، بانک اطلاعاتی test ایجاد نشده است! خواهید دید، تا وقتی که مجموعه‌ای (Collection) در داخل بانک اطلاعاتی، مثلا test ایجاد نکنید، این بانک اطلاعاتی به طور رسمی ایجاد نمی‌گردد.

چگونه می‌توانیم متوجه شویم، در حال حاضر، درون چه بانک اطلاعاتی قرار داریم؟

با استفاده از دستور db می‌توانیم اطمینان حاصل کنیم که در حال حاضر درون چه بانک اطلاعاتی قرار داریم:

> db
test

چگونه می‌توانیم فهرست کلیه بانک‌های اطلاعاتی موجود در MongoDB را بدست آوریم؟

با استفاده از دستور show dbs می‌توانیم فهرست تمام بانک‌های اطلاعاتی موجود در MongoDB را مشاهده نماییم:

> show dbs
local   0.078GB

همانگونه که ملاحظه می‌کنید، ما در حال حاضر، درون بانک اطلاعاتی test قرار داریم، ولی نام آن، در فهرست بانک‌های اطلاعاتی وجود ندارد! همانگونه که بیان گردید، تا وقتی که درون بانک اطلاعاتی، مجموعه‌ای ایجاد نکنیم، به طور رسمی، بانک اطلاعاتی ایجاد نمی‌گردد.

چگونه می‌توانیم، وارد بانک اطلاعاتی دیگری شویم؟

با استفاده از دستور use می‌توانیم از بانک اطلاعاتی جاری خارج شده و وارد بانک اطلاعاتی دیگری بشویم:

> use local
switched to db local

حال اگر مجددا از دستور db استفاده نماییم، سیستم به ما خواهد گفت که در حال حاضر، درون بانک اطلاعاتی local قرار داریم:

> db
local

چگونه می‌توانیم از فهرست مجموعه‌های موجود در بانک اطلاعاتی جاری، مطلع شویم؟

با استفاده از دستور show collections می‌توانیم فهرست کاملی از کل مجموعه‌های موجود درون بانک اطلاعاتی جاری را بدست آوریم:

> show collections
startup_log
system.indexes

حال مجددا سراغ بانک اطلاعاتی test می‌رویم تا تکنیک‌های مربوط به ایجاد مجموعه و نیز ایجاد، ویرایش، حذف و و فهرست‌گیری اطلاعات و غیره را در محیط MongoDB تجربه نماییم:

> use test
switched to db test

این مطلب هنوز تکمیل نشده است!

  • داریوش تصدیقی
۱۲
آبان

همانگونه که در مطلب قبل، در مورد ورود به پایگاه MongoDB، انتخاب برنامه، دانلود و نصب آن صحبت کردیم، در این مطلب می خواهیم طریقه راه اندازی آنرا توضیح دهیم.

در صورتی که فایل MSI را از پایگاه MongoDB دانلود کرده و اقدام به نصب آن کرده باشید، بسته به اینکه سیستم عامل ویندوز شما، ۶۴ بیتی و یا ۳۲ بیتی بوده و در ضمن، نسخه برنامه را به درستی دانلود و نصب کرده باشید، تعدادی فایل در یکی از نشانی های ذیل قرار خواهند گرفت:

C:\Program Files\MongoDB\Server\3.0\bin

و یا

C:\Program Files (x86)\MongoDB\Server\3.0\bin

برای اینکه هیجان کار را بیشتر کنیم، تا شما اطمینان حاصل کنید که صرفا Extract صورت گرفته و نصب واقعی در کار نبوده است، توصیه می کنیم که ابتدا پوشه ای در درایو C، مثلا به نام MongoDB ایجاد کرده، و سپس تمامی فایل هایی که در پوشه bin قرار دارند را به این پوشه جدید، کپی نمایید.

MongoDB برای ذخیره کردن اطلاعات خود، به مسیر پیش فرض data/db/ نیاز دارد. برای این منظور، وارد درایو C شده و اقدام به ایجاد پوشه ای به نام data کرده و در داخل پوشه data نیز، پوشه دیگری به نام db ایجاد نمایید. توجه داشته باشید که پوشه data، باید در ریشه درایو C ایجاد گردد! لازم به ذکر است که شما می توانید مسیر پیش فرض را تغییر دهید. در درس های آتی به این تنظیمات خواهیم پرداخت.

حال وارد محیط Windows Command Prompt شده و وارد درایو C‌ و سپس وارد پوشه MongoDB شوید. پس از ورود به این مسیر، در اولین اقدام دستور ذیل را نوشته، تا نسخه بانک اطلاعاتی MongoDB نمایش داده شود:

C:\MongoDB>MongoD --version
db version v3.0.7
git version: ...

توجه: دقت داشته باشید که تمامی پارامترهایی که در مقابل دستور MongoD نوشته می شوند، Case Sensitive بوده و باید با حروف کوچک نوشته شوند. در صورتی که به عنوان مثال، شما پارامتر version را به صورت VERSION بنویسید، با پیام خطا مواجه خواهید شد.

توجه: دقت داشته که خود دستورات، Case Sensitive نمی باشند، لذا در صورتی که شما دستور MongoD را به صورت mongod و یا MONGOD بنویسید، مشکلی در اجرای دستورات نخواهید داشت.

توجه:‌ دقت کنید که برای استفاده از پارامتر version، می توانید قبل از آن، از یک (-) و یا دو (-) استفاده کنید، ولی توصیه می شود که از دو (-) استفاده نمایید.

با استفاده از دستور ذیل، شما می توانید، کلیه پارامترهایی که مورد استفاده دستور MongoD قرار می گیرند را مشاهده نمایید:

C:\MongoD>MongoD --help

حال می خواهیم سرور MongoDB را راه اندازی نماییم. برای این منظور، تنها کافی است که از دستور ذیل استفاده نمایید:

C:\MongoD>MongoD

پس از اجرای این دستور، بسته به تنظیمات Security سیستم عامل ویندوزتان، ممکن است که پنجره ای ظاهر شود. در صورت ظاهر شدن این پنجره، بر روی دکمه Allow Access کلیک نمایید. بدین ترتیب، سرور MongoDB راه اندازی شده و آماده استفاده می باشد.

- با تشکر از سرکار خانم مهندس مریم تفس عزیز، که در ویرایش این متن، مرا یاری داده است.

  • داریوش تصدیقی
۱۲
آبان
در این مطلب می خواهم به معرفی بانک اطلاعاتی MongoDB بپردازم، تا با امکانات و ویژگی های آن آشنا شده و در صورت لزوم از آن استفاده نمایید...

MongoDB یک بانک اطلاعاتی NoSQL یا Non SQL یا Non Relational است. یعنی بر خلاف اکثر بانک های اطلاعاتی که می شناسید (Access, SQL Server, Oracle, MySQL)، یک بانک اطلاعاتی RDBMS نمی باشد! پس تا اینجا به این نتیجه می رسیم که در بانک های اطلاعاتی NoSQL چیزی به معنی Relation وجود ندارد!

بر خلاف SQL Server و همانند My-SQL و Oracle، بانک اطلاعاتی MongoDB، مستقل از سیستم عامل می باشد. یعنی Cross Platform می باشد. این بدان معنی است که تقریبا روی اکثر سیستم عامل ها نصب و راه اندازی می شود.

در MongoDB، به جای جدول (Table)، مفهومی به نام مجموعه (Collection) وجود دارد.

در MongoDB، به جای سطر (Row or Record)، مفهومی به نام سند (Document) وجود دارد، به همین دلیل، اصطلاحا می گویند که این بانک اطلاعاتی، Document Oriented می باشد.

در MongoDB، تراکنش (Transaction) وجود ندارد!

در تمام بانک های اطلاعاتی RDBMS، برای استفاده از جداول، ابتدا جدول را ایجاد کرده و سپس باید! ساختار جدول را تعریف کنیم. یعنی باید بگوییم که در این جدول چه فیلدهایی داریم و جنس هر فیلد را مشخص کنیم. بر خلاف بانک های اطلاعاتی RDBMS، بانک های اطلاعاتی NoSQL، اصطلاحا Schema-Less می باشند! یعنی دارای هیچ ساختار معینی از نظر فیلد و جنس فیلد ندارند! یعنی شما می توانید به راحتی ابتدا مجموعه (Collection) خود را تعریف کرده و بدون نیاز به تعریف فیلدها و جنس آنها، اقدام به درج اطلاعات (سند) نمایید، و این خیلی هیجان انگیز است.

در بسیاری از بانک های اطلاعاتی RDBMS، مانند SQL Server و Oracle، ما از زبانی به نام T-SQL استفاده می کنیم، در حالی که در بانک اطلاعاتی MongoDB‌، از زبان JavaScript استفاده می کنیم! شاید به همین دلیل است که در این وبلاگ، سعی خواهم کرد که روی مفاهیم و دستورات جاوا اسکریپت تمرکز بیشتری نمایم.

ضمن آنکه بانک های اطلاعاتی NoSQL برای مصارف Big Data استفاده می شوند، ولی در پروژه های Small, Medium, Large Scale نیز استفاده از آنها خالی از لطف نیست، چرا که سرعت و کارایی آنها به طرز چشم گیری فوق العاده بوده و قابل مقایسه با بانک های اطلاعاتی RDBMS نمی باشند.

برای دانلود MongoDB، می توانید به پایگاه http://www.MongoDB.com مراجعه نموده و با توجه به سیستم عامل خود، و با عنایت به ۳۲ بیتی و یا ۶۴ بیتی بودن آن، نسخه مناسب را انتخاب کنید. متاسفانه در حال حاضر، به دلیل تحریم های بی شرمانه! در لحظه دانلود با خطایی مواجه خواهید شد و امکان دانلود وجود ندارد! به هر حال امیدوارم، در زمانی که شما این مطلب را مطالعه می کنید، این محدودیت از این سایت و دیگر سایت ها، از بین رفته باشد.

مواردی که در خصوص MongoDB، خیلی جالب و هیجان انگیز می باشد، آن است که کل فایل ZIP و یا MSI که دانلود می کنید، کمتر از هشتاد (۸۰) مگابایت می باشد! و اساسا عملیات نصب، به آن معنی همیشگی نیست! بلکه صرفا یک سری فایل در محلی که شما تعیین کرده اید، Extract می شود. شما می توانید حتی فایل های مقصد را در محل و پوشه دیگری کپی کرده و در محل جدید، بانک اطلاعاتی MongoDB را راه اندازی نمایید.

توصیه می کنم که به نشانی ذیل مراجعه کنید و مطلبی که در مقایسه دو بانک اطلاعاتی NoSQL و RDBMS نوشته شده است را مطالعه کنید. در این مقاله دو بانک اطلاعاتی MongoDB و MySQL با هم مقایسه شده اند:

این مطلب هنوز تکمیل نشده است!
  • داریوش تصدیقی