SlideShare a Scribd company logo
1 of 42
Download to read offline
mongoDB
:‫کت‬‫شر‬ ‫ی‬ ‫درباره‬
●‫داده‬‫کز‬‫مر‬ ‫و‬ ‫سازی‬ ‫مجازی‬ ،‫ابری‬ ‫رایانش‬ ‫های‬‫حل‬ ‫راه‬ ‫ارائه‬
●‫ابری‬ ‫رایانش‬ ‫های‬ ‫محیط‬ ‫ای‬‫ر‬‫ب‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫و‬ ‫تولید‬ ،‫احی‬‫ر‬‫ط‬
●‫بهداشت‬ ‫و‬ ‫آموزشی‬ ،‫ات‬‫ر‬‫مخاب‬ ‫های‬ ‫زمینه‬ ‫در‬ ‫خدمات‬ ‫ارائه‬
●‫بنیاد‬ ‫از‬ ‫حمایت‬OpenStack‫ان‬‫ر‬‫ای‬ ‫در‬ ‫کت‬‫شر‬ ‫اولین‬ ‫عنوان‬ ‫به‬
●‫انجمن‬ ‫حامی‬ ‫اولین‬OpenStack‫ان‬‫ر‬‫ای‬
innfinision.netMongoDB
‫فهرست‬:
●‫مقدمه‬
●‫ها‬‫ویژگی‬
●‫کاربردی‬ ‫آموزش‬
●‫با‬‫متناظر‬ ‫مفاهیم‬SQL
●‫ارزیابی‬ ‫و‬ ‫آزمایش‬
‫مقدمه‬
MongoDB innfinision.net
‫داده‬ ‫پایگاه‬MongoDB‫بسیار‬ ‫ککه‬‫ک‬ ‫باشکد‬‫می‬ ‫ی‬‫ای‬ ‫ه‬‫رابط‬ ‫بدون‬ ‫های‬ ‫داده‬ ‫پایگاه‬ ‫ن‬‫ازبهتری‬ ‫ی‬‫یک‬
.‫باشد‬‫می‬ ‫پذیر‬ ‫گسترش‬ ‫و‬ ‫سریع‬ ‫و‬ ‫قوی‬ ‫و‬ ‫پذیر‬ ‫انعطاف‬‫بصورت‬ ‫دادها‬ ‫مدل‬json.‫باشند‬ ‫می‬
)‫نحوی‬ ‫قواعد‬ ‫همان‬ ‫دستورالعملها‬ ‫و‬ ‫قواعد‬syntax‫رابط‬ ‫که‬ ‫باشند‬‫می‬ ‫اسکریپت‬ ‫جاوا‬ (shell‫از‬ ‫آن‬
‫ویژگیهای‬ ‫از‬ ‫بعضی‬ .‫باشد‬‫می‬ ‫آسان‬ ‫و‬ ‫ساده‬ ‫بسیار‬ ‫این‬‫ر‬‫میکند.بناب‬ ‫پیروی‬ ‫اسکریپت‬ ‫جاوا‬ ‫قواعد‬
‫داده‬ ‫پایگاه‬ ‫مدل‬ ‫به‬ ‫شبیه‬ ‫بسیار‬ ‫مونگو‬SQL‫وجود‬ ‫مونگو‬ ‫در‬ ‫های‬‫ویژگی‬ ‫بعضی‬ ‫اما‬ ،‫باشد‬ ‫می‬
‫نظیر‬ .‫ندارند‬join‫یا‬ ‫ها‬trigger.‫پیچیده‬ ‫سطری‬ ‫چند‬ ‫های‬ ‫اکنش‬‫ر‬‫ت‬ ‫یا‬ ‫ها‬
MongoDB innfinision.net
●‫یا‬ ‫سندها‬Documents:
)‫ایی‬ ‫رابطه‬ ‫های‬ ‫دیتابیس‬ ‫در‬ ‫ها‬ ‫ردیف‬ ‫مفهوم‬ ‫همان‬ ‫سندها‬sql‫باشند‬ ‫می‬ (
●‫یا‬ ‫ها‬ ‫مجموعه‬collection:
.‫باشد‬‫می‬ ‫ایی‬ ‫رابطه‬ ‫های‬ ‫دیتابیس‬ ‫در‬ ‫جداول‬ ‫همان‬ ‫ها‬ ‫مجموعه‬
●: ‫دیتابیس‬
‫مفهوم‬ ‫همان‬ ‫و‬ ‫مانده‬‫باقی‬ ‫نخورده‬ ‫دست‬ ‫مفهوم‬ ‫این‬DB.‫باشد‬‫می‬ ‫ای‬‫رابطه‬ ‫های‬ ‫دیتابیس‬ ‫در‬
MongoDB innfinision.net
‫های‬‫گی‬‫ویژ‬mongoDB
MongoDB innfinision.net
: ‫ها‬‫ویژگی‬
●‫ا‬‫ر‬‫سندگ‬
●‫سریع‬ ‫و‬ ‫قدرتمند‬
●‫کلسترینگ‬ ‫و‬ ‫میرورینگ‬
●‫آسان‬ ‫پذیری‬ ‫گسترش‬
●‫چندگانه‬ ‫رابط‬
MongoDB innfinision.net
: ‫ایی‬‫ر‬‫گ‬ ‫سند‬
●‫همین‬ ‫به‬ ‫و‬ ‫بوده‬ ‫نویسی‬ ‫برنامه‬ ‫های‬‫زبان‬ ‫در‬ ‫دیکشنری‬ ‫ایی‬ ‫داده‬ ‫نوع‬ ‫به‬ ‫شبیه‬ ‫بسیار‬ ‫سندها‬
.‫باشد‬‫می‬ ‫راحت‬ ‫بسیار‬ ‫نویس‬ ‫برنامه‬ ‫ای‬‫ر‬‫ب‬ ‫منظور‬
●.‫است‬ ‫داده‬ ‫کاهش‬ ‫را‬ ‫اضافی‬ ‫های‬ ‫اتصال‬ ‫به‬ ‫نیاز‬ ‫بودن‬ ‫ای‬ ‫آرایه‬ ‫و‬ ‫ا‬‫ر‬‫سندگ‬ ‫قابلیت‬
●‫شده‬‫آسانتر‬ ‫های‬ ‫چندریختی‬ ‫ایجاد‬ ‫باعث‬ ‫خودکار‬ ‫اسکمای‬
●_> ‫مخصوص‬ ‫کلید‬ ‫یک‬ ‫دارای‬ ‫سند‬‫هر‬id‫یکتا‬ ‫مجموعه‬ ‫یک‬ ‫سندهای‬ ‫بین‬ ‫در‬ ‫که‬ ‫هست‬ <
.‫هست‬
MongoDB innfinision.net
: ‫سریع‬ ‫و‬ ‫قدرتمند‬
●‫ها‬‫داده‬ ‫نوشتن‬ ‫و‬ ‫خواندن‬ ‫در‬ ‫زیاد‬ ‫بسیار‬ ‫سرعت‬ ‫وجود‬
●)‫کلیدها‬ ‫روی‬‫بر‬ ‫گذاری‬ ‫ایندکس‬ ‫ایجاد‬key(
●‫بصورت‬ ‫پردازش‬ ‫است‬ ‫ممکن‬ ‫زمانی‬‫هر‬ ‫در‬offload‫که‬ ‫گیرد‬ ‫انجام‬ ‫کلینت‬ ‫سمت‬ ‫منطقی‬ ‫و‬
‫سبب‬ ‫احی‬‫ر‬‫ط‬ ‫این‬‫کارایی‬ ‫بردن‬ ‫بال‬MongoDB.‫شده‬
MongoDB innfinision.net
: ‫کلسترینگ‬ ‫و‬ ‫میرورینگ‬
MongoDB.‫باشد‬‫می‬ ‫ترینگ‬‫کلس‬ ‫سرویس‬ ‫دارای‬ ‫ن‬‫چنی‬ ‫هم‬‫کلسترینگ‬ ‫سرویس‬MongoDB
‫و‬ ‫شود‬ ‫ا‬‫ر‬‫اج‬ ‫باید‬ ‫ایطی‬‫ر‬‫ش‬ ‫هر‬ ‫تحت‬ ‫آنها‬ ‫ی‬ ‫برنامه‬ ‫که‬ ‫میرود‬ ‫کار‬ ‫به‬ ‫کتهایی‬‫شر‬ ‫و‬ ‫سازمان‬ ‫ای‬‫ر‬‫ب‬ ‫بیشتر‬
‫باشد‬ ‫شده‬ ‫خارج‬ ‫سرویس‬ ‫از‬ ‫سرورها‬ ‫از‬ ‫یکی‬ ‫که‬ ‫زمانی‬ ‫حتی‬ ‫بماند‬ ‫باقی‬ ‫ا‬‫ر‬‫اج‬ ‫حالت‬ ‫در‬‫سرویس‬ ‫در‬ .
‫خواهند‬ ‫ا‬‫ر‬‫اج‬ ‫میکنند‬ ‫ا‬‫ر‬‫اج‬ ‫سرورها‬ ‫باقی‬ ‫که‬ ‫را‬ ‫قوانینی‬ ‫و‬ ‫نامه‬‫ر‬‫ب‬ ‫همان‬ ‫سرورها‬ ‫تمامی‬ ‫کلسترینگ‬
‫به‬ ‫که‬ ‫کرد‬ ‫خواهند‬ ‫کار‬ ‫به‬ ‫شروع‬ ‫بلفاصه‬ ‫سرورها‬ ‫باقی‬ ‫شود‬ ‫خارج‬ ‫سرویس‬ ‫از‬ ‫سروری‬ ‫اگر‬ ‫لذا‬ ‫کرد‬
‫آن‬Failover‫میشود‬ ‫گفته‬‫سرورها‬ ‫باقی‬ ‫افتاد‬ ‫کار‬ ‫به‬ ‫دوباره‬ ‫شده‬ ‫خارج‬ ‫سرویس‬ ‫از‬ ‫سرور‬ ‫که‬ ‫زمانی‬ .
‫عمل‬ ‫این‬ ‫به‬ .‫یافت‬ ‫خواهد‬ ‫ادامه‬ ‫دوباره‬ ‫عادی‬ ‫روند‬ ‫و‬ ‫میشوند‬ ‫آگاه‬Failback. ‫میشود‬ ‫گفته‬
MongoDB innfinision.net
: ‫آسان‬ ‫پذیری‬ ‫گسترش‬
‫نامه‬‫ر‬‫ب‬ ‫سرور‬ ‫چند‬ ‫که‬ ‫زمانی‬MongoDB‫احتمال‬ ‫آن‬ ‫نتیجه‬ ‫که‬ ‫میکنند‬ ‫ا‬‫ر‬‫اج‬ ‫یکدیگر‬ ‫با‬ ‫را‬
.‫هاست‬ ‫بالتربرنامه‬ ‫لود‬ ‫سرعت‬ ‫و‬ ‫کمتر‬ ‫خطای‬MongoDB‫پایه‬ ‫بر‬scale out‫شده‬ ‫احی‬‫ر‬‫ط‬ ‫بودن‬
‫روی‬ ‫در‬ ‫جداگانه‬ ‫طور‬ ‫به‬ ‫ها‬‫داده‬ ‫که‬ ‫میدهد‬ ‫را‬ ‫اجازه‬ ‫این‬ ‫ها‬‫داده‬ ‫مدل‬ ‫بودن‬ ‫ا‬‫ر‬‫سندگ‬ ،‫است‬
‫مجدد‬ ‫توزیع‬ .‫رساند‬‫می‬ ‫تعادل‬ ‫به‬ ‫را‬ ‫گروه‬ ‫یک‬ ‫کردن‬ ‫لود‬ ‫و‬ ‫ها‬‫داده‬ ‫که‬ ‫شوند‬ ‫پخش‬ ‫سرور‬ ‫چندین‬
‫ها‬‫داده‬ ‫ذخیره‬ ‫از‬ ‫انی‬‫ر‬‫نگ‬ ‫بدون‬ ‫نویسان‬ ‫برنامه‬ ‫که‬ ‫میدهد‬ ‫را‬ ‫امکان‬ ‫این‬ ‫که‬ ‫است‬ ‫اتوماتیک‬ ‫ها‬ ‫دسته‬
)‫شارد‬ ‫تکنیک‬ ‫این‬ ‫به‬ .‫کنند‬ ‫کز‬‫تمر‬ ‫نویسی‬ ‫نامه‬‫ر‬‫ب‬ ‫روی‬Shard‫چندین‬ ‫بین‬ ‫در‬ ‫داده‬ ‫و‬ ‫ها‬ ‫مجموعه‬ (
.‫میپذیرید‬ ‫انجام‬ ‫اتوماتیک‬ ‫و‬ ‫خودکار‬ ‫بصورت‬ ‫که‬ ‫باشد‬‫می‬ ‫سرور‬
MongoDB innfinision.net
: ‫چندگانه‬ ‫رابط‬
‫دارای‬API‫بوسیله‬ ‫عمومی‬ ‫های‬‫زبان‬ ‫های‬Driver‫و‬ ‫ها‬shell.‫باشد‬‫می‬ ‫مونگو‬
MongoDB innfinision.net
‫کاربردی‬ ‫آموزش‬
MongoDB innfinision.net
: ‫ها‬ ‫سند‬
●‫بصورت‬ ‫سندها‬object:‫باشند‬‫می‬
}'key': 'value'{
●:‫دارند‬ ‫اهمیت‬ ‫ها‬‫ارزش‬ ‫و‬ ‫تیب‬‫ر‬‫ت‬
}'key2': 'value2', 'key1': 'value1'{ ‫از‬ ‫متفاوت‬ }'key1': 'value1', 'key2': 'value2'{
●‫مونگو‬case-sensitive‫و‬type-sensitive.‫باشد‬‫می‬
●:‫باشد‬‫می‬ ‫غلط‬‫زیر‬ ‫سند‬ !‫باشد‬ ‫اری‬‫ر‬‫تک‬ ‫کلید‬ ‫دارای‬ ‫تواند‬‫نمی‬ ‫مونگو‬ ‫در‬ ‫سند‬
}'key': 'value2', 'key': 'value1'{
MongoDB innfinision.net
Mongo:
‫محیط‬ ‫در‬ ‫مونگو‬ ‫با‬ ‫کار‬ ‫ای‬‫ر‬‫ب‬shell‫بنویسید‬mongo.‫دستور‬ ‫از‬ ‫باید‬ ‫بیسی‬ ‫دیتا‬ ‫به‬ ‫شدن‬ ‫وصل‬ ‫ای‬‫ر‬‫ب‬
use‫ایجاد‬ ‫را‬ ‫ای‬ ‫داده‬ ‫پایگاه‬ ‫پیش‬ ‫از‬ ‫اینکه‬ ‫بدون‬ ‫حتی‬ ‫شما‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬ .‫کنید‬ ‫استفاده‬
‫دستور‬ ‫باشید‬ ‫کرده‬use‫و‬ ‫دیتابیس‬ ‫که‬ ‫ا‬‫ر‬‫زی‬ ،‫میدهد‬ ‫آنجام‬ ‫شما‬ ‫ای‬‫ر‬‫ب‬ ‫را‬ ‫پایگاه‬ ‫آن‬ ‫به‬ ‫سوییچ‬ ‫عمل‬
collection‫بصورت‬ ‫سند‬ ‫اولین‬ ‫ورود‬ ‫در‬ ‫ها‬runtime.‫شود‬‫می‬ ‫ساخته‬
MongoDB innfinision.net
: ‫سند‬ ‫ایجاد‬
●‫دستور‬ ‫از‬ ‫باید‬ ‫سند‬ ‫ساخت‬ ‫رای‬insert:‫شود‬ ‫استفاده‬
db.test.insert(}exam: “test1”{)
●‫دستور‬ ‫با‬find:‫نماییم‬ ‫حاصل‬ ‫اطمینان‬ ‫اطلعات‬ ‫ورود‬ ‫صحت‬ ‫از‬ ‫میتوانیم‬
db.test.find()
●،‫بود‬ ‫خواهد‬‫زیر‬ ‫بصورت‬ ‫خروجی‬
} _id : ObjectId("4bf9bec50e32f82523389314"),username : ”test1” {
MongoDB innfinision.net
●‫دستور‬ ‫با‬ ‫همینطور‬save:‫کرد‬ ‫ایجاد‬ ‫سند‬ ‫توان‬ ‫می‬ ‫هم‬
db.test.save(}exam: “test2”{)
●:‫کرد‬ ‫شمارش‬ ‫را‬ ‫موجود‬ ‫های‬ ‫رکورد‬ ‫تعداد‬ ‫توان‬ ‫می‬‫زیر‬ ‫دستور‬ ‫با‬
db.test.count()
‫دستور‬ ‫چه‬‫اگر‬ :‫نکته‬find.‫داد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫کار‬ ‫همین‬ ‫هم‬
●‫از‬‫عناصر‬ ‫در‬ ‫جستوجو‬ ‫ای‬‫ر‬‫ب‬find‫یک‬ ‫بصورت‬ ‫را‬ ‫شرط‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬ ،‫کرد‬ ‫استفاده‬ ‫میتوان‬
:‫میدهیم‬ ‫پاس‬ ‫آن‬ ‫به‬ ‫دیکشنری‬
db.test.find(}exam: “test1”{)
MongoDB innfinision.net
: ‫اطلعات‬ ‫ایش‬‫ر‬‫وی‬
●‫دستور‬ ‫با‬update:‫نمود‬ ‫ایش‬‫ر‬‫وی‬ ‫را‬ ‫اطلعات‬ ‫میتوان‬
db.test.update(}exam :”test1”{, }$set: }country: ”Canada”){{
‫رکورد‬ ‫به‬ ‫مثال‬ ‫این‬ ‫در‬exam‫مقدار‬country‫حالت‬ ‫به‬ ‫را‬free-schema.‫نمودیم‬ ‫اضافه‬
‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬unset.‫نماییم‬ ‫پاک‬ ‫را‬‫مقادیر‬ ‫میتوانیم‬
MongoDB innfinision.net
: ‫اطلعات‬ ‫حذف‬
●‫دستور‬ ‫با‬‫مقادیر‬ ‫حذف‬remove.‫باشد‬ ‫می‬
db.test.remove(}key and value{)
●‫دستور‬remove‫با‬ ‫مجموعه‬ ‫کامل‬ ‫حذف‬ ‫ای‬‫ر‬‫ب‬ ،‫میکند‬ ‫پاک‬ ‫را‬ ‫مجموع‬ ‫داخل‬ ‫اسناد‬ ‫فقط‬
‫تمام‬index‫دستور‬ ‫از‬ ‫هایش‬drop.‫نماییم‬ ‫می‬ ‫استفاده‬
db.test.drop()
‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬drop!‫نماید‬ ‫می‬ ‫پاک‬ ‫را‬ ‫کالکشن‬ ‫تمام‬
MongoDB innfinision.net
Javascript:
●‫در‬ ‫اسکریپت‬ ‫جاوا‬ ‫دستورات‬ ‫تمام‬shell‫هستند‬ ‫استفاده‬ ‫قابل‬ ‫مونگو‬
for(i=0; i<200000; i++) }
db.test.save(}num: i{);}
●‫دستور‬ ‫با‬count‫که‬ ‫بشویم‬ ‫مطمن‬ ‫میتوانیم‬۲۰۰۰۰۰:‫است‬ ‫شده‬ ‫درج‬ ‫کالکشن‬ ‫در‬ ‫رکورد‬
db.test.count()
MongoDB innfinision.net
Index:
‫نماییم‬ ‫مرتب‬ ‫نزولی‬ ‫و‬ ‫صعودی‬ ‫اساس‬ ‫دو‬‫بر‬ ‫را‬ ‫ها‬ ‫رکورد‬ ‫بود‬ ‫خواهیم‬ ‫قادر‬ ‫گذاری‬ ‫ایندکس‬ ‫با‬
‫این‬ ‫که‬.‫باشد‬‫می‬ ‫مذبور‬ ‫کالکشن‬ ‫در‬ ‫انفعالت‬ ‫فعل‬ ‫بالی‬ ‫بسیار‬ ‫سرعت‬ ‫باعث‬‫امر‬
db.test.ensureIndex(}num: 1{)
MongoDB innfinision.net
‫با‬‫متناظر‬ ‫مفاهیم‬SQL
MongoDB innfinision.net
SQL Terms/Concepts MongoDB Terms/Concepts
database database
table collection
row document or BSON document
column field
index index
table joins embedded documents and linking
primary key
Specify any unique column or column
combination as primary key.
primary key
In MongoDB, the primary key is automatically
set to the _id field.
MongoDB innfinision.net
aggregation (e.g. group by) aggregation pipeline
SQL Schema Statements MongoDB Schema Statements
CREATE TABLE users (
id MEDIUMINT NOT NULL
AUTO_INCREMENT,
user_id Varchar(30),
age Number,
status char(1),
PRIMARY KEY (id)
)
Implicitly created on first insert() operation. The
primary key _id is automatically added if _id
field is not specified.
db.users.insert( {
user_id: "abc123",
age: 55,
status: "A"
} )
However, you can also explicitly create a
collection:
db.createCollection("users")
MongoDB innfinision.net
ALTER TABLE users
ADD join_date DATETIME
Collections do not describe or enforce the structure of
its documents; i.e. there is no structural alteration at
the collection level.
However, at the document level, update() operations
can add fields to existing documents using the $set
operator.
db.users.update(
{ },
{ $set: { join_date: new Date() } },
{ multi: true } )
)
ALTER TABLE users
DROP COLUMN join_date
Collections do not describe or enforce the structure of
its documents; i.e. there is no structural alteration at
the collection level.
However, at the document level, update() operations
can remove fields from documents using the $unset
operator.
db.users.update(
{ },
{ $unset: { join_date: "" } },
{ multi: true }
)
MongoDB innfinision.net
CREATE INDEX idx_user_id_asc
ON users(user_id)
db.users.ensureIndex( { user_id: 1 } )
CREATE INDEX
idx_user_id_asc_age_desc
ON users(user_id, age DESC)
db.users.ensureIndex( { user_id: 1, age: -1 } )
DROP TABLE users db.users.drop()
MongoDB innfinision.net
Insert:
SQL INSERT Statements MongoDB insert() Statements
INSERT INTO users(user_id,
age,
status(
VALUES ("bcd001",
45,
"A"(
db.users.insert)
}user_id: "bcd001", age: 45, status: "A" {
)
MongoDB innfinision.net
SQL Update Statements MongoDB update() Statements
UPDATE users
SET status = "C"
WHERE age > 25
db.users.update)
}age: { $gt: 25 }{,
} $set: { status: "C" }{,
}multi: true{
)
UPDATE users
SET age = age + 3
WHERE status = "A"
db.users.update)
}status: "A" { ,
} $inc: { age: 3 }{,
}multi: true{
)
Update:
MongoDB innfinision.net
Delete:
SQL Delete Statements MongoDB remove() Statements
DELETE FROM users
WHERE status = "D"
db.users.remove( { status: "D" } )
DELETE FROM users db.users.remove) (
MongoDB innfinision.net
‫رابط‬PyMongo:
‫بسته‬PyMongo‫اگر‬ ‫که‬ ‫شود‬‫می‬ ‫پیشنهاد‬ ‫و‬ ،‫باشد‬ ‫می‬ ‫مونگو‬ ‫با‬ ‫کار‬ ‫ای‬‫ر‬‫ب‬ ‫پایتونی‬ ‫ار‬‫ز‬‫اب‬ ‫یک‬
‫پایتون‬.‫نمایید‬ ‫استفاده‬ ‫ابزار‬ ‫این‬ ‫از‬ ‫ا‬‫ا‬ ‫حتم‬ ‫کنید‬ ‫کار‬ ‫مونگو‬ ‫با‬ ‫میخواهید‬ ‫و‬ ‫هستید‬ ‫کار‬
:‫نصب‬ ‫ای‬‫ر‬‫ب‬
pip install pymongo
MongoDB innfinision.net
‫به‬‫مختصر‬ ‫نگاهی‬PyMongo:
‫با‬ ‫آشنایی‬ ‫حد‬ ‫در‬ ‫کوتاه‬ ‫نگاهی‬ ‫قسمت‬ ‫این‬ ‫در‬PyMongo.‫داشت‬ ‫خواهیم‬
●‫کتابخانه‬ ‫اول‬ ‫گام‬ ‫در‬PyMongo:‫میکنیم‬ ‫وارد‬ ‫رو‬
import pymongo
●‫از‬ ‫نمونه‬ ‫یک‬ ‫بعد‬ ‫گام‬ ‫در‬mongod‫باید‬ ‫سرویس‬ ‫این‬ ،‫باشد‬ ‫نصب‬ ‫سیستم‬ ‫روی‬‫بر‬ ‫مونگو‬ ‫که‬ ‫)زمانی‬
:‫میسازیم‬ (‫باشد‬ ‫فعال‬
Client = pymongo.MongoClient()
Client = pymongo.MongoClient('localhost', 27017)
MongoDB innfinision.net
●:‫رابسازید‬ ‫خود‬ ‫دیتابیس‬ ‫میتوانید‬ ‫حالت‬ ‫چندین‬ ‫در‬ ‫شما‬
1 - db = client.test_database
2 - db = client['test-database']
●.‫نمایید‬ ‫عمل‬ ‫بال‬ ‫دوشکل‬ ‫از‬ ‫یکی‬ ‫به‬ ‫میتوانید‬ ‫خود‬ ‫داده‬ ‫پایگاه‬ ‫ایجاد‬ ‫و‬ ‫گذاری‬ ‫نام‬ ‫ای‬‫ر‬‫ب‬
●) ‫ها‬ ‫مجموعه‬ ‫ای‬‫ر‬‫ب‬ ‫گذاری‬ ‫نام‬ ‫ای‬‫ر‬‫ب‬collections:‫نماییم‬ ‫عمل‬‫زیر‬ ‫روش‬ ‫دو‬ ‫از‬ ‫یکی‬ ‫به‬ ‫باید‬ (
1 - collection = db.test_collection
2 - collection = db['test-collection']
MongoDB innfinision.net
‫همان‬ ‫یا‬ ‫اطلعات‬ ‫ورود‬ ‫ای‬‫ر‬‫ب‬insert)‫مجموعه‬ ‫داخل‬ ‫سند‬collection‫متد‬ ‫از‬ (insert:‫کنید‬ ‫استفاده‬ ()
Example = collection.insert(dictionary) ‫میدهیم‬ ‫پاس‬ ‫اطلعات‬ ‫از‬ ‫دیکشنری‬ ‫یک‬
.‫شود‬‫می‬ ‫ایجاد‬ ‫سرور‬ ‫روی‬‫بر‬ ‫حقیقی‬ ‫بصورت‬ ‫مجموعه‬ ‫سند‬ ‫ورود‬ ‫اولین‬ ‫از‬ ‫پس‬
●:‫کرد‬ ‫استفاده‬‫زیر‬ ‫دستور‬ ‫از‬ ‫میتوان‬ ‫موضوع‬ ‫این‬ ‫آزمایش‬ ‫ای‬‫ر‬‫ب‬
>>>db.collection_names()
[u'system.indexes', u'collection']
●:‫تک‬ ‫بصورت‬ ‫جستوجوی‬
collection.find_one(dictionary)
MongoDB innfinision.net
.‫میگرداند‬‫بر‬ ‫را‬ ‫نتیجه‬ ،‫شرط‬ ‫اولین‬ ‫شدن‬ ‫مچ‬ ‫محض‬ ‫به‬
Bulk Insert:
‫ذخیره‬ ‫ای‬‫ر‬‫ب‬ ‫مونگو‬ ‫مکانیزم‬ ‫همان‬ ‫از‬ ‫که‬ ‫بزرگ‬ ‫های‬ ‫توده‬ ‫بصورت‬ ‫داده‬ ‫ورود‬ ‫بحث‬ ‫جدید‬ ‫مبحث‬ ‫در‬
‫سازی‬ ‫ذخیره‬ ‫در‬ ‫سریع‬ ‫سرعت‬ ‫موجب‬‫امر‬ ‫این‬ ‫و‬ ‫مینماید‬ ‫استفاده‬ ‫هست‬ ‫آرایه‬ ‫بصورت‬ ‫انبوه‬ ‫های‬ ‫سازی‬
‫بررسی‬ ‫دیتابیس‬ ‫در‬ ‫ورودشان‬ ‫صحت‬‫نظر‬ ‫از‬ ‫ها‬‫داده‬‫دیگر‬ ،‫داده‬ ‫ورود‬ ‫نوع‬ ‫این‬ ‫در‬ ‫که‬ ‫ا‬‫ر‬‫زی‬ ،‫است‬ ‫شده‬
‫بودن‬ ‫محروم‬ ،‫ورود‬ ‫نوع‬ ‫این‬ ‫در‬ ‫بال‬ ‫سرعت‬ ‫اصلی‬ ‫دلیل‬ .‫میگردند‬ ‫ذخیره‬ ‫اتومیک‬ ‫بصورت‬ ‫ها‬‫داده‬ ‫و‬ ‫نشده‬
‫ها‬‫داده‬ ‫از‬ ‫ای‬ ‫آرایه‬‫زیر‬ ‫مثال‬ ‫در‬ .‫باشد‬‫می‬ ‫داده‬ ‫درج‬ ‫صحت‬ ‫از‬bulk:‫شوند‬‫می‬
collection.insert([dict1, dict2, dict3, ...])
MongoDB innfinision.net
‫از‬ ‫استفاده‬query:
‫از‬ ‫استفاده‬ ‫ای‬‫ر‬‫ب‬query‫متد‬ ‫از‬find‫مبنی‬ ‫را‬ ‫ایی‬ ‫دیکشنری‬ ‫که‬ ‫صورت‬ ‫بدین‬ ،‫مینماییم‬ ‫استفاده‬ ()
.‫میدهیم‬ ‫پاس‬ ‫مذکور‬ ‫متد‬ ‫به‬ ‫استفاده‬ ‫مورد‬ ‫شرط‬‫بر‬
collection.find(dict)
Indexing:
‫سریع‬ ‫ای‬‫ر‬‫اج‬ ‫ای‬‫ر‬‫ب‬query)‫مجموعه‬ ‫به‬ ‫باید‬ ‫ها‬collection.‫نماییم‬ ‫اعمال‬ ‫ایندکس‬ (
.‫هستند‬ ‫گذاری‬ ‫ایندکس‬ ‫قابل‬ ‫نزولی‬ ‫و‬ ‫صعودی‬ ‫اساس‬ ‫دو‬‫بر‬ ‫ها‬ ‫ایندکس‬
MongoDB innfinision.net
‫این‬ ‫سرعت‬ ‫بسیار‬ ... ، ‫حذفو‬ ‫و‬ ‫اضافه‬ ،‫سرچ‬ ‫سرعت‬ ‫ایندکس‬ ‫اعمال‬ ‫از‬ ‫پس‬query.‫یافته‬ ‫افزایش‬ ‫ها‬
Collection.create_index([('key1', 1), ('key2', -1)])
‫مقدار‬۱‫یا‬ASCENDING- ‫مقدار‬ ‫و‬ ‫باشد‬‫می‬ ‫صعودی‬۱‫یا‬DESCENDING.‫باشد‬‫می‬ ‫نزولی‬
MongoDB innfinision.net
‫ارزیابی‬ ‫و‬ ‫آزمایش‬
MongoDB innfinision.net
= ‫بسته‬‫هر‬۳‫میلیون‬۱۰۰‫رکورد‬ ‫هزار‬
‫با‬ ‫تاپی‬ ‫لپ‬ ‫روی‬ ‫تست‬ ‫این‬۴‫و‬ ‫رم‬ ‫گیگ‬cpu‫ای‬ ‫هسته‬ ‫دو‬amd‫و‬ .‫گرفته‬ ‫انجام‬ ‫ساتا‬ ‫معمولی‬ ‫هارد‬ ‫و‬
‫های‬ ‫دیتابیس‬ ‫جدول‬ ‫از‬ ‫یکی‬ ‫با‬ibs‫که‬۳‫احتمالش‬ ‫و‬ .‫شده‬ ‫تست‬ ‫هست‬ ‫تایی‬ ‫صدهزار‬ ‫و‬ ‫میلیون‬
.‫کنند‬‫تغییر‬ ‫هم‬ ‫نتایج‬ ،‫آزمایش‬ ‫ایط‬‫ر‬‫ش‬‫تغییر‬ ‫با‬ ‫که‬ ‫هست‬
MongoDB innfinision.net
MongoDB
.‫گرفته‬ ‫انجام‬ ‫نوشتم‬ ‫که‬ ‫پایتونی‬ ‫کد‬ ‫با‬ ‫ها‬ ‫تست‬ ‫این‬
‫یا‬ ‫کش‬ ‫بصورت‬ ‫داده‬ ‫مونگو‬ ‫خود‬ ‫شیوه‬ ‫به‬ ‫ایمپورت‬ ‫در‬bulk‫زمان‬ ‫در‬۲:۱۴‫ایمپورت‬ ‫نوع‬ ‫در‬ ‫و‬ ‫برد‬ ‫زمان‬
‫کامند‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫خودم‬ ‫کد‬ ‫از‬ ‫استفاده‬ ‫برد.)بدون‬ ‫زمان‬ ‫ساعت‬ ‫نیم‬ ‫بالی‬ ‫تکی‬mongoimport(
‫ماژول‬ ‫از‬ ‫استفاده‬ ‫با‬‫زیر‬ ‫نتایج‬ ‫ولی‬MongoDriver.‫میباشد‬
‫که‬ ‫مواقعی‬ ‫اینکه‬ ‫جالب‬ ‫نکته‬query‫تا‬ ،‫میشود‬ ‫داده‬ ‫گشت‬‫بر‬‫سریعتر‬ ‫نتیجه‬ ‫میباشد‬‫بیشتر‬ ‫شروط‬ ‫با‬
‫که‬ ‫مواقعی‬query.‫میباشد‬‫کمتر‬ ‫شرط‬ ‫با‬
innfinision.net
MongoDB innfinision.net
‫متشکریم‬
Ali Hallaji
Ali.Hallaji@innfinision.net
innfinision.net

More Related Content

Viewers also liked

Viewers also liked (6)

La República del Río Grande (1838-1840)
La República del Río Grande (1838-1840)La República del Río Grande (1838-1840)
La República del Río Grande (1838-1840)
 
دانلود ترجمه آگهی تاسیس
دانلود ترجمه آگهی تاسیسدانلود ترجمه آگهی تاسیس
دانلود ترجمه آگهی تاسیس
 
Business
BusinessBusiness
Business
 
PTA Membership Drive: Mrs. Harris' Class
PTA Membership Drive: Mrs. Harris' ClassPTA Membership Drive: Mrs. Harris' Class
PTA Membership Drive: Mrs. Harris' Class
 
Swedbank företagspresentation kvartal 4,2015
Swedbank företagspresentation kvartal 4,2015Swedbank företagspresentation kvartal 4,2015
Swedbank företagspresentation kvartal 4,2015
 
Socializacion pegui ambiental
Socializacion pegui ambientalSocializacion pegui ambiental
Socializacion pegui ambiental
 

Similar to MongoDB

Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Ehsan Hamzei
 
Introduce to mongodb
Introduce to mongodbIntroduce to mongodb
Introduce to mongodbMahdi Yousefi
 
Introduction to oracle
Introduction to oracleIntroduction to oracle
Introduction to oracleEhsan Hamzei
 
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازMobin Ranjbar
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهرانFarafekr Technology
 
چرا نود.جی اس؟
چرا نود.جی اس؟چرا نود.جی اس؟
چرا نود.جی اس؟Masoud Sharifi
 
Data Management System- Haseb System Co
Data Management System- Haseb System CoData Management System- Haseb System Co
Data Management System- Haseb System CoHamed Ghazanfari
 
Repository pattern
Repository patternRepository pattern
Repository patternMahdi Fa
 
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدآشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدSadegh Ghanbari Shohani
 
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی  برای یادگیری شی گراییسی پلاس پلاس به عنوان زبان دومی  برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گراییmrm_196
 

Similar to MongoDB (20)

Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)
 
Introduce to mongodb
Introduce to mongodbIntroduce to mongodb
Introduce to mongodb
 
Sql tuning
Sql tuningSql tuning
Sql tuning
 
Docker
DockerDocker
Docker
 
Kotlin
KotlinKotlin
Kotlin
 
Introduction to oracle
Introduction to oracleIntroduction to oracle
Introduction to oracle
 
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
 
rbdmap in ceph
rbdmap in ceph rbdmap in ceph
rbdmap in ceph
 
Javascript
JavascriptJavascript
Javascript
 
Javascript
JavascriptJavascript
Javascript
 
چرا نود.جی اس؟
چرا نود.جی اس؟چرا نود.جی اس؟
چرا نود.جی اس؟
 
Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2
 
how enable ceph dashboard
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboard
 
lunch box plugin
 lunch box plugin  lunch box plugin
lunch box plugin
 
Data Management System- Haseb System Co
Data Management System- Haseb System CoData Management System- Haseb System Co
Data Management System- Haseb System Co
 
Repository pattern
Repository patternRepository pattern
Repository pattern
 
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدآشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندروید
 
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی  برای یادگیری شی گراییسی پلاس پلاس به عنوان زبان دومی  برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
 

More from Ali Hallaji

More from Ali Hallaji (9)

Next Generation FIDS for airports
Next Generation FIDS for airportsNext Generation FIDS for airports
Next Generation FIDS for airports
 
Next Generation FIDS for airports
Next Generation FIDS for airportsNext Generation FIDS for airports
Next Generation FIDS for airports
 
Sharding
ShardingSharding
Sharding
 
M101
M101M101
M101
 
M102
M102M102
M102
 
M202
M202M202
M202
 
PyTables
PyTablesPyTables
PyTables
 
Py tables
Py tablesPy tables
Py tables
 
PyTables
PyTablesPyTables
PyTables
 

MongoDB

  • 2. :‫کت‬‫شر‬ ‫ی‬ ‫درباره‬ ●‫داده‬‫کز‬‫مر‬ ‫و‬ ‫سازی‬ ‫مجازی‬ ،‫ابری‬ ‫رایانش‬ ‫های‬‫حل‬ ‫راه‬ ‫ارائه‬ ●‫ابری‬ ‫رایانش‬ ‫های‬ ‫محیط‬ ‫ای‬‫ر‬‫ب‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫و‬ ‫تولید‬ ،‫احی‬‫ر‬‫ط‬ ●‫بهداشت‬ ‫و‬ ‫آموزشی‬ ،‫ات‬‫ر‬‫مخاب‬ ‫های‬ ‫زمینه‬ ‫در‬ ‫خدمات‬ ‫ارائه‬ ●‫بنیاد‬ ‫از‬ ‫حمایت‬OpenStack‫ان‬‫ر‬‫ای‬ ‫در‬ ‫کت‬‫شر‬ ‫اولین‬ ‫عنوان‬ ‫به‬ ●‫انجمن‬ ‫حامی‬ ‫اولین‬OpenStack‫ان‬‫ر‬‫ای‬
  • 5. ‫داده‬ ‫پایگاه‬MongoDB‫بسیار‬ ‫ککه‬‫ک‬ ‫باشکد‬‫می‬ ‫ی‬‫ای‬ ‫ه‬‫رابط‬ ‫بدون‬ ‫های‬ ‫داده‬ ‫پایگاه‬ ‫ن‬‫ازبهتری‬ ‫ی‬‫یک‬ .‫باشد‬‫می‬ ‫پذیر‬ ‫گسترش‬ ‫و‬ ‫سریع‬ ‫و‬ ‫قوی‬ ‫و‬ ‫پذیر‬ ‫انعطاف‬‫بصورت‬ ‫دادها‬ ‫مدل‬json.‫باشند‬ ‫می‬ )‫نحوی‬ ‫قواعد‬ ‫همان‬ ‫دستورالعملها‬ ‫و‬ ‫قواعد‬syntax‫رابط‬ ‫که‬ ‫باشند‬‫می‬ ‫اسکریپت‬ ‫جاوا‬ (shell‫از‬ ‫آن‬ ‫ویژگیهای‬ ‫از‬ ‫بعضی‬ .‫باشد‬‫می‬ ‫آسان‬ ‫و‬ ‫ساده‬ ‫بسیار‬ ‫این‬‫ر‬‫میکند.بناب‬ ‫پیروی‬ ‫اسکریپت‬ ‫جاوا‬ ‫قواعد‬ ‫داده‬ ‫پایگاه‬ ‫مدل‬ ‫به‬ ‫شبیه‬ ‫بسیار‬ ‫مونگو‬SQL‫وجود‬ ‫مونگو‬ ‫در‬ ‫های‬‫ویژگی‬ ‫بعضی‬ ‫اما‬ ،‫باشد‬ ‫می‬ ‫نظیر‬ .‫ندارند‬join‫یا‬ ‫ها‬trigger.‫پیچیده‬ ‫سطری‬ ‫چند‬ ‫های‬ ‫اکنش‬‫ر‬‫ت‬ ‫یا‬ ‫ها‬ MongoDB innfinision.net
  • 6. ●‫یا‬ ‫سندها‬Documents: )‫ایی‬ ‫رابطه‬ ‫های‬ ‫دیتابیس‬ ‫در‬ ‫ها‬ ‫ردیف‬ ‫مفهوم‬ ‫همان‬ ‫سندها‬sql‫باشند‬ ‫می‬ ( ●‫یا‬ ‫ها‬ ‫مجموعه‬collection: .‫باشد‬‫می‬ ‫ایی‬ ‫رابطه‬ ‫های‬ ‫دیتابیس‬ ‫در‬ ‫جداول‬ ‫همان‬ ‫ها‬ ‫مجموعه‬ ●: ‫دیتابیس‬ ‫مفهوم‬ ‫همان‬ ‫و‬ ‫مانده‬‫باقی‬ ‫نخورده‬ ‫دست‬ ‫مفهوم‬ ‫این‬DB.‫باشد‬‫می‬ ‫ای‬‫رابطه‬ ‫های‬ ‫دیتابیس‬ ‫در‬ MongoDB innfinision.net
  • 8. : ‫ها‬‫ویژگی‬ ●‫ا‬‫ر‬‫سندگ‬ ●‫سریع‬ ‫و‬ ‫قدرتمند‬ ●‫کلسترینگ‬ ‫و‬ ‫میرورینگ‬ ●‫آسان‬ ‫پذیری‬ ‫گسترش‬ ●‫چندگانه‬ ‫رابط‬ MongoDB innfinision.net
  • 9. : ‫ایی‬‫ر‬‫گ‬ ‫سند‬ ●‫همین‬ ‫به‬ ‫و‬ ‫بوده‬ ‫نویسی‬ ‫برنامه‬ ‫های‬‫زبان‬ ‫در‬ ‫دیکشنری‬ ‫ایی‬ ‫داده‬ ‫نوع‬ ‫به‬ ‫شبیه‬ ‫بسیار‬ ‫سندها‬ .‫باشد‬‫می‬ ‫راحت‬ ‫بسیار‬ ‫نویس‬ ‫برنامه‬ ‫ای‬‫ر‬‫ب‬ ‫منظور‬ ●.‫است‬ ‫داده‬ ‫کاهش‬ ‫را‬ ‫اضافی‬ ‫های‬ ‫اتصال‬ ‫به‬ ‫نیاز‬ ‫بودن‬ ‫ای‬ ‫آرایه‬ ‫و‬ ‫ا‬‫ر‬‫سندگ‬ ‫قابلیت‬ ●‫شده‬‫آسانتر‬ ‫های‬ ‫چندریختی‬ ‫ایجاد‬ ‫باعث‬ ‫خودکار‬ ‫اسکمای‬ ●_> ‫مخصوص‬ ‫کلید‬ ‫یک‬ ‫دارای‬ ‫سند‬‫هر‬id‫یکتا‬ ‫مجموعه‬ ‫یک‬ ‫سندهای‬ ‫بین‬ ‫در‬ ‫که‬ ‫هست‬ < .‫هست‬ MongoDB innfinision.net
  • 10. : ‫سریع‬ ‫و‬ ‫قدرتمند‬ ●‫ها‬‫داده‬ ‫نوشتن‬ ‫و‬ ‫خواندن‬ ‫در‬ ‫زیاد‬ ‫بسیار‬ ‫سرعت‬ ‫وجود‬ ●)‫کلیدها‬ ‫روی‬‫بر‬ ‫گذاری‬ ‫ایندکس‬ ‫ایجاد‬key( ●‫بصورت‬ ‫پردازش‬ ‫است‬ ‫ممکن‬ ‫زمانی‬‫هر‬ ‫در‬offload‫که‬ ‫گیرد‬ ‫انجام‬ ‫کلینت‬ ‫سمت‬ ‫منطقی‬ ‫و‬ ‫سبب‬ ‫احی‬‫ر‬‫ط‬ ‫این‬‫کارایی‬ ‫بردن‬ ‫بال‬MongoDB.‫شده‬ MongoDB innfinision.net
  • 11. : ‫کلسترینگ‬ ‫و‬ ‫میرورینگ‬ MongoDB.‫باشد‬‫می‬ ‫ترینگ‬‫کلس‬ ‫سرویس‬ ‫دارای‬ ‫ن‬‫چنی‬ ‫هم‬‫کلسترینگ‬ ‫سرویس‬MongoDB ‫و‬ ‫شود‬ ‫ا‬‫ر‬‫اج‬ ‫باید‬ ‫ایطی‬‫ر‬‫ش‬ ‫هر‬ ‫تحت‬ ‫آنها‬ ‫ی‬ ‫برنامه‬ ‫که‬ ‫میرود‬ ‫کار‬ ‫به‬ ‫کتهایی‬‫شر‬ ‫و‬ ‫سازمان‬ ‫ای‬‫ر‬‫ب‬ ‫بیشتر‬ ‫باشد‬ ‫شده‬ ‫خارج‬ ‫سرویس‬ ‫از‬ ‫سرورها‬ ‫از‬ ‫یکی‬ ‫که‬ ‫زمانی‬ ‫حتی‬ ‫بماند‬ ‫باقی‬ ‫ا‬‫ر‬‫اج‬ ‫حالت‬ ‫در‬‫سرویس‬ ‫در‬ . ‫خواهند‬ ‫ا‬‫ر‬‫اج‬ ‫میکنند‬ ‫ا‬‫ر‬‫اج‬ ‫سرورها‬ ‫باقی‬ ‫که‬ ‫را‬ ‫قوانینی‬ ‫و‬ ‫نامه‬‫ر‬‫ب‬ ‫همان‬ ‫سرورها‬ ‫تمامی‬ ‫کلسترینگ‬ ‫به‬ ‫که‬ ‫کرد‬ ‫خواهند‬ ‫کار‬ ‫به‬ ‫شروع‬ ‫بلفاصه‬ ‫سرورها‬ ‫باقی‬ ‫شود‬ ‫خارج‬ ‫سرویس‬ ‫از‬ ‫سروری‬ ‫اگر‬ ‫لذا‬ ‫کرد‬ ‫آن‬Failover‫میشود‬ ‫گفته‬‫سرورها‬ ‫باقی‬ ‫افتاد‬ ‫کار‬ ‫به‬ ‫دوباره‬ ‫شده‬ ‫خارج‬ ‫سرویس‬ ‫از‬ ‫سرور‬ ‫که‬ ‫زمانی‬ . ‫عمل‬ ‫این‬ ‫به‬ .‫یافت‬ ‫خواهد‬ ‫ادامه‬ ‫دوباره‬ ‫عادی‬ ‫روند‬ ‫و‬ ‫میشوند‬ ‫آگاه‬Failback. ‫میشود‬ ‫گفته‬ MongoDB innfinision.net
  • 12. : ‫آسان‬ ‫پذیری‬ ‫گسترش‬ ‫نامه‬‫ر‬‫ب‬ ‫سرور‬ ‫چند‬ ‫که‬ ‫زمانی‬MongoDB‫احتمال‬ ‫آن‬ ‫نتیجه‬ ‫که‬ ‫میکنند‬ ‫ا‬‫ر‬‫اج‬ ‫یکدیگر‬ ‫با‬ ‫را‬ .‫هاست‬ ‫بالتربرنامه‬ ‫لود‬ ‫سرعت‬ ‫و‬ ‫کمتر‬ ‫خطای‬MongoDB‫پایه‬ ‫بر‬scale out‫شده‬ ‫احی‬‫ر‬‫ط‬ ‫بودن‬ ‫روی‬ ‫در‬ ‫جداگانه‬ ‫طور‬ ‫به‬ ‫ها‬‫داده‬ ‫که‬ ‫میدهد‬ ‫را‬ ‫اجازه‬ ‫این‬ ‫ها‬‫داده‬ ‫مدل‬ ‫بودن‬ ‫ا‬‫ر‬‫سندگ‬ ،‫است‬ ‫مجدد‬ ‫توزیع‬ .‫رساند‬‫می‬ ‫تعادل‬ ‫به‬ ‫را‬ ‫گروه‬ ‫یک‬ ‫کردن‬ ‫لود‬ ‫و‬ ‫ها‬‫داده‬ ‫که‬ ‫شوند‬ ‫پخش‬ ‫سرور‬ ‫چندین‬ ‫ها‬‫داده‬ ‫ذخیره‬ ‫از‬ ‫انی‬‫ر‬‫نگ‬ ‫بدون‬ ‫نویسان‬ ‫برنامه‬ ‫که‬ ‫میدهد‬ ‫را‬ ‫امکان‬ ‫این‬ ‫که‬ ‫است‬ ‫اتوماتیک‬ ‫ها‬ ‫دسته‬ )‫شارد‬ ‫تکنیک‬ ‫این‬ ‫به‬ .‫کنند‬ ‫کز‬‫تمر‬ ‫نویسی‬ ‫نامه‬‫ر‬‫ب‬ ‫روی‬Shard‫چندین‬ ‫بین‬ ‫در‬ ‫داده‬ ‫و‬ ‫ها‬ ‫مجموعه‬ ( .‫میپذیرید‬ ‫انجام‬ ‫اتوماتیک‬ ‫و‬ ‫خودکار‬ ‫بصورت‬ ‫که‬ ‫باشد‬‫می‬ ‫سرور‬ MongoDB innfinision.net
  • 13. : ‫چندگانه‬ ‫رابط‬ ‫دارای‬API‫بوسیله‬ ‫عمومی‬ ‫های‬‫زبان‬ ‫های‬Driver‫و‬ ‫ها‬shell.‫باشد‬‫می‬ ‫مونگو‬ MongoDB innfinision.net
  • 15. : ‫ها‬ ‫سند‬ ●‫بصورت‬ ‫سندها‬object:‫باشند‬‫می‬ }'key': 'value'{ ●:‫دارند‬ ‫اهمیت‬ ‫ها‬‫ارزش‬ ‫و‬ ‫تیب‬‫ر‬‫ت‬ }'key2': 'value2', 'key1': 'value1'{ ‫از‬ ‫متفاوت‬ }'key1': 'value1', 'key2': 'value2'{ ●‫مونگو‬case-sensitive‫و‬type-sensitive.‫باشد‬‫می‬ ●:‫باشد‬‫می‬ ‫غلط‬‫زیر‬ ‫سند‬ !‫باشد‬ ‫اری‬‫ر‬‫تک‬ ‫کلید‬ ‫دارای‬ ‫تواند‬‫نمی‬ ‫مونگو‬ ‫در‬ ‫سند‬ }'key': 'value2', 'key': 'value1'{ MongoDB innfinision.net
  • 16. Mongo: ‫محیط‬ ‫در‬ ‫مونگو‬ ‫با‬ ‫کار‬ ‫ای‬‫ر‬‫ب‬shell‫بنویسید‬mongo.‫دستور‬ ‫از‬ ‫باید‬ ‫بیسی‬ ‫دیتا‬ ‫به‬ ‫شدن‬ ‫وصل‬ ‫ای‬‫ر‬‫ب‬ use‫ایجاد‬ ‫را‬ ‫ای‬ ‫داده‬ ‫پایگاه‬ ‫پیش‬ ‫از‬ ‫اینکه‬ ‫بدون‬ ‫حتی‬ ‫شما‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬ .‫کنید‬ ‫استفاده‬ ‫دستور‬ ‫باشید‬ ‫کرده‬use‫و‬ ‫دیتابیس‬ ‫که‬ ‫ا‬‫ر‬‫زی‬ ،‫میدهد‬ ‫آنجام‬ ‫شما‬ ‫ای‬‫ر‬‫ب‬ ‫را‬ ‫پایگاه‬ ‫آن‬ ‫به‬ ‫سوییچ‬ ‫عمل‬ collection‫بصورت‬ ‫سند‬ ‫اولین‬ ‫ورود‬ ‫در‬ ‫ها‬runtime.‫شود‬‫می‬ ‫ساخته‬ MongoDB innfinision.net
  • 17. : ‫سند‬ ‫ایجاد‬ ●‫دستور‬ ‫از‬ ‫باید‬ ‫سند‬ ‫ساخت‬ ‫رای‬insert:‫شود‬ ‫استفاده‬ db.test.insert(}exam: “test1”{) ●‫دستور‬ ‫با‬find:‫نماییم‬ ‫حاصل‬ ‫اطمینان‬ ‫اطلعات‬ ‫ورود‬ ‫صحت‬ ‫از‬ ‫میتوانیم‬ db.test.find() ●،‫بود‬ ‫خواهد‬‫زیر‬ ‫بصورت‬ ‫خروجی‬ } _id : ObjectId("4bf9bec50e32f82523389314"),username : ”test1” { MongoDB innfinision.net
  • 18. ●‫دستور‬ ‫با‬ ‫همینطور‬save:‫کرد‬ ‫ایجاد‬ ‫سند‬ ‫توان‬ ‫می‬ ‫هم‬ db.test.save(}exam: “test2”{) ●:‫کرد‬ ‫شمارش‬ ‫را‬ ‫موجود‬ ‫های‬ ‫رکورد‬ ‫تعداد‬ ‫توان‬ ‫می‬‫زیر‬ ‫دستور‬ ‫با‬ db.test.count() ‫دستور‬ ‫چه‬‫اگر‬ :‫نکته‬find.‫داد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫کار‬ ‫همین‬ ‫هم‬ ●‫از‬‫عناصر‬ ‫در‬ ‫جستوجو‬ ‫ای‬‫ر‬‫ب‬find‫یک‬ ‫بصورت‬ ‫را‬ ‫شرط‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬ ،‫کرد‬ ‫استفاده‬ ‫میتوان‬ :‫میدهیم‬ ‫پاس‬ ‫آن‬ ‫به‬ ‫دیکشنری‬ db.test.find(}exam: “test1”{) MongoDB innfinision.net
  • 19. : ‫اطلعات‬ ‫ایش‬‫ر‬‫وی‬ ●‫دستور‬ ‫با‬update:‫نمود‬ ‫ایش‬‫ر‬‫وی‬ ‫را‬ ‫اطلعات‬ ‫میتوان‬ db.test.update(}exam :”test1”{, }$set: }country: ”Canada”){{ ‫رکورد‬ ‫به‬ ‫مثال‬ ‫این‬ ‫در‬exam‫مقدار‬country‫حالت‬ ‫به‬ ‫را‬free-schema.‫نمودیم‬ ‫اضافه‬ ‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬unset.‫نماییم‬ ‫پاک‬ ‫را‬‫مقادیر‬ ‫میتوانیم‬ MongoDB innfinision.net
  • 20. : ‫اطلعات‬ ‫حذف‬ ●‫دستور‬ ‫با‬‫مقادیر‬ ‫حذف‬remove.‫باشد‬ ‫می‬ db.test.remove(}key and value{) ●‫دستور‬remove‫با‬ ‫مجموعه‬ ‫کامل‬ ‫حذف‬ ‫ای‬‫ر‬‫ب‬ ،‫میکند‬ ‫پاک‬ ‫را‬ ‫مجموع‬ ‫داخل‬ ‫اسناد‬ ‫فقط‬ ‫تمام‬index‫دستور‬ ‫از‬ ‫هایش‬drop.‫نماییم‬ ‫می‬ ‫استفاده‬ db.test.drop() ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬drop!‫نماید‬ ‫می‬ ‫پاک‬ ‫را‬ ‫کالکشن‬ ‫تمام‬ MongoDB innfinision.net
  • 21. Javascript: ●‫در‬ ‫اسکریپت‬ ‫جاوا‬ ‫دستورات‬ ‫تمام‬shell‫هستند‬ ‫استفاده‬ ‫قابل‬ ‫مونگو‬ for(i=0; i<200000; i++) } db.test.save(}num: i{);} ●‫دستور‬ ‫با‬count‫که‬ ‫بشویم‬ ‫مطمن‬ ‫میتوانیم‬۲۰۰۰۰۰:‫است‬ ‫شده‬ ‫درج‬ ‫کالکشن‬ ‫در‬ ‫رکورد‬ db.test.count() MongoDB innfinision.net
  • 22. Index: ‫نماییم‬ ‫مرتب‬ ‫نزولی‬ ‫و‬ ‫صعودی‬ ‫اساس‬ ‫دو‬‫بر‬ ‫را‬ ‫ها‬ ‫رکورد‬ ‫بود‬ ‫خواهیم‬ ‫قادر‬ ‫گذاری‬ ‫ایندکس‬ ‫با‬ ‫این‬ ‫که‬.‫باشد‬‫می‬ ‫مذبور‬ ‫کالکشن‬ ‫در‬ ‫انفعالت‬ ‫فعل‬ ‫بالی‬ ‫بسیار‬ ‫سرعت‬ ‫باعث‬‫امر‬ db.test.ensureIndex(}num: 1{) MongoDB innfinision.net
  • 24. SQL Terms/Concepts MongoDB Terms/Concepts database database table collection row document or BSON document column field index index table joins embedded documents and linking primary key Specify any unique column or column combination as primary key. primary key In MongoDB, the primary key is automatically set to the _id field. MongoDB innfinision.net
  • 25. aggregation (e.g. group by) aggregation pipeline SQL Schema Statements MongoDB Schema Statements CREATE TABLE users ( id MEDIUMINT NOT NULL AUTO_INCREMENT, user_id Varchar(30), age Number, status char(1), PRIMARY KEY (id) ) Implicitly created on first insert() operation. The primary key _id is automatically added if _id field is not specified. db.users.insert( { user_id: "abc123", age: 55, status: "A" } ) However, you can also explicitly create a collection: db.createCollection("users") MongoDB innfinision.net
  • 26. ALTER TABLE users ADD join_date DATETIME Collections do not describe or enforce the structure of its documents; i.e. there is no structural alteration at the collection level. However, at the document level, update() operations can add fields to existing documents using the $set operator. db.users.update( { }, { $set: { join_date: new Date() } }, { multi: true } ) ) ALTER TABLE users DROP COLUMN join_date Collections do not describe or enforce the structure of its documents; i.e. there is no structural alteration at the collection level. However, at the document level, update() operations can remove fields from documents using the $unset operator. db.users.update( { }, { $unset: { join_date: "" } }, { multi: true } ) MongoDB innfinision.net
  • 27. CREATE INDEX idx_user_id_asc ON users(user_id) db.users.ensureIndex( { user_id: 1 } ) CREATE INDEX idx_user_id_asc_age_desc ON users(user_id, age DESC) db.users.ensureIndex( { user_id: 1, age: -1 } ) DROP TABLE users db.users.drop() MongoDB innfinision.net
  • 28. Insert: SQL INSERT Statements MongoDB insert() Statements INSERT INTO users(user_id, age, status( VALUES ("bcd001", 45, "A"( db.users.insert) }user_id: "bcd001", age: 45, status: "A" { ) MongoDB innfinision.net
  • 29. SQL Update Statements MongoDB update() Statements UPDATE users SET status = "C" WHERE age > 25 db.users.update) }age: { $gt: 25 }{, } $set: { status: "C" }{, }multi: true{ ) UPDATE users SET age = age + 3 WHERE status = "A" db.users.update) }status: "A" { , } $inc: { age: 3 }{, }multi: true{ ) Update: MongoDB innfinision.net
  • 30. Delete: SQL Delete Statements MongoDB remove() Statements DELETE FROM users WHERE status = "D" db.users.remove( { status: "D" } ) DELETE FROM users db.users.remove) ( MongoDB innfinision.net
  • 31. ‫رابط‬PyMongo: ‫بسته‬PyMongo‫اگر‬ ‫که‬ ‫شود‬‫می‬ ‫پیشنهاد‬ ‫و‬ ،‫باشد‬ ‫می‬ ‫مونگو‬ ‫با‬ ‫کار‬ ‫ای‬‫ر‬‫ب‬ ‫پایتونی‬ ‫ار‬‫ز‬‫اب‬ ‫یک‬ ‫پایتون‬.‫نمایید‬ ‫استفاده‬ ‫ابزار‬ ‫این‬ ‫از‬ ‫ا‬‫ا‬ ‫حتم‬ ‫کنید‬ ‫کار‬ ‫مونگو‬ ‫با‬ ‫میخواهید‬ ‫و‬ ‫هستید‬ ‫کار‬ :‫نصب‬ ‫ای‬‫ر‬‫ب‬ pip install pymongo MongoDB innfinision.net
  • 32. ‫به‬‫مختصر‬ ‫نگاهی‬PyMongo: ‫با‬ ‫آشنایی‬ ‫حد‬ ‫در‬ ‫کوتاه‬ ‫نگاهی‬ ‫قسمت‬ ‫این‬ ‫در‬PyMongo.‫داشت‬ ‫خواهیم‬ ●‫کتابخانه‬ ‫اول‬ ‫گام‬ ‫در‬PyMongo:‫میکنیم‬ ‫وارد‬ ‫رو‬ import pymongo ●‫از‬ ‫نمونه‬ ‫یک‬ ‫بعد‬ ‫گام‬ ‫در‬mongod‫باید‬ ‫سرویس‬ ‫این‬ ،‫باشد‬ ‫نصب‬ ‫سیستم‬ ‫روی‬‫بر‬ ‫مونگو‬ ‫که‬ ‫)زمانی‬ :‫میسازیم‬ (‫باشد‬ ‫فعال‬ Client = pymongo.MongoClient() Client = pymongo.MongoClient('localhost', 27017) MongoDB innfinision.net
  • 33. ●:‫رابسازید‬ ‫خود‬ ‫دیتابیس‬ ‫میتوانید‬ ‫حالت‬ ‫چندین‬ ‫در‬ ‫شما‬ 1 - db = client.test_database 2 - db = client['test-database'] ●.‫نمایید‬ ‫عمل‬ ‫بال‬ ‫دوشکل‬ ‫از‬ ‫یکی‬ ‫به‬ ‫میتوانید‬ ‫خود‬ ‫داده‬ ‫پایگاه‬ ‫ایجاد‬ ‫و‬ ‫گذاری‬ ‫نام‬ ‫ای‬‫ر‬‫ب‬ ●) ‫ها‬ ‫مجموعه‬ ‫ای‬‫ر‬‫ب‬ ‫گذاری‬ ‫نام‬ ‫ای‬‫ر‬‫ب‬collections:‫نماییم‬ ‫عمل‬‫زیر‬ ‫روش‬ ‫دو‬ ‫از‬ ‫یکی‬ ‫به‬ ‫باید‬ ( 1 - collection = db.test_collection 2 - collection = db['test-collection'] MongoDB innfinision.net
  • 34. ‫همان‬ ‫یا‬ ‫اطلعات‬ ‫ورود‬ ‫ای‬‫ر‬‫ب‬insert)‫مجموعه‬ ‫داخل‬ ‫سند‬collection‫متد‬ ‫از‬ (insert:‫کنید‬ ‫استفاده‬ () Example = collection.insert(dictionary) ‫میدهیم‬ ‫پاس‬ ‫اطلعات‬ ‫از‬ ‫دیکشنری‬ ‫یک‬ .‫شود‬‫می‬ ‫ایجاد‬ ‫سرور‬ ‫روی‬‫بر‬ ‫حقیقی‬ ‫بصورت‬ ‫مجموعه‬ ‫سند‬ ‫ورود‬ ‫اولین‬ ‫از‬ ‫پس‬ ●:‫کرد‬ ‫استفاده‬‫زیر‬ ‫دستور‬ ‫از‬ ‫میتوان‬ ‫موضوع‬ ‫این‬ ‫آزمایش‬ ‫ای‬‫ر‬‫ب‬ >>>db.collection_names() [u'system.indexes', u'collection'] ●:‫تک‬ ‫بصورت‬ ‫جستوجوی‬ collection.find_one(dictionary) MongoDB innfinision.net
  • 35. .‫میگرداند‬‫بر‬ ‫را‬ ‫نتیجه‬ ،‫شرط‬ ‫اولین‬ ‫شدن‬ ‫مچ‬ ‫محض‬ ‫به‬ Bulk Insert: ‫ذخیره‬ ‫ای‬‫ر‬‫ب‬ ‫مونگو‬ ‫مکانیزم‬ ‫همان‬ ‫از‬ ‫که‬ ‫بزرگ‬ ‫های‬ ‫توده‬ ‫بصورت‬ ‫داده‬ ‫ورود‬ ‫بحث‬ ‫جدید‬ ‫مبحث‬ ‫در‬ ‫سازی‬ ‫ذخیره‬ ‫در‬ ‫سریع‬ ‫سرعت‬ ‫موجب‬‫امر‬ ‫این‬ ‫و‬ ‫مینماید‬ ‫استفاده‬ ‫هست‬ ‫آرایه‬ ‫بصورت‬ ‫انبوه‬ ‫های‬ ‫سازی‬ ‫بررسی‬ ‫دیتابیس‬ ‫در‬ ‫ورودشان‬ ‫صحت‬‫نظر‬ ‫از‬ ‫ها‬‫داده‬‫دیگر‬ ،‫داده‬ ‫ورود‬ ‫نوع‬ ‫این‬ ‫در‬ ‫که‬ ‫ا‬‫ر‬‫زی‬ ،‫است‬ ‫شده‬ ‫بودن‬ ‫محروم‬ ،‫ورود‬ ‫نوع‬ ‫این‬ ‫در‬ ‫بال‬ ‫سرعت‬ ‫اصلی‬ ‫دلیل‬ .‫میگردند‬ ‫ذخیره‬ ‫اتومیک‬ ‫بصورت‬ ‫ها‬‫داده‬ ‫و‬ ‫نشده‬ ‫ها‬‫داده‬ ‫از‬ ‫ای‬ ‫آرایه‬‫زیر‬ ‫مثال‬ ‫در‬ .‫باشد‬‫می‬ ‫داده‬ ‫درج‬ ‫صحت‬ ‫از‬bulk:‫شوند‬‫می‬ collection.insert([dict1, dict2, dict3, ...]) MongoDB innfinision.net
  • 36. ‫از‬ ‫استفاده‬query: ‫از‬ ‫استفاده‬ ‫ای‬‫ر‬‫ب‬query‫متد‬ ‫از‬find‫مبنی‬ ‫را‬ ‫ایی‬ ‫دیکشنری‬ ‫که‬ ‫صورت‬ ‫بدین‬ ،‫مینماییم‬ ‫استفاده‬ () .‫میدهیم‬ ‫پاس‬ ‫مذکور‬ ‫متد‬ ‫به‬ ‫استفاده‬ ‫مورد‬ ‫شرط‬‫بر‬ collection.find(dict) Indexing: ‫سریع‬ ‫ای‬‫ر‬‫اج‬ ‫ای‬‫ر‬‫ب‬query)‫مجموعه‬ ‫به‬ ‫باید‬ ‫ها‬collection.‫نماییم‬ ‫اعمال‬ ‫ایندکس‬ ( .‫هستند‬ ‫گذاری‬ ‫ایندکس‬ ‫قابل‬ ‫نزولی‬ ‫و‬ ‫صعودی‬ ‫اساس‬ ‫دو‬‫بر‬ ‫ها‬ ‫ایندکس‬ MongoDB innfinision.net
  • 37. ‫این‬ ‫سرعت‬ ‫بسیار‬ ... ، ‫حذفو‬ ‫و‬ ‫اضافه‬ ،‫سرچ‬ ‫سرعت‬ ‫ایندکس‬ ‫اعمال‬ ‫از‬ ‫پس‬query.‫یافته‬ ‫افزایش‬ ‫ها‬ Collection.create_index([('key1', 1), ('key2', -1)]) ‫مقدار‬۱‫یا‬ASCENDING- ‫مقدار‬ ‫و‬ ‫باشد‬‫می‬ ‫صعودی‬۱‫یا‬DESCENDING.‫باشد‬‫می‬ ‫نزولی‬ MongoDB innfinision.net
  • 39. = ‫بسته‬‫هر‬۳‫میلیون‬۱۰۰‫رکورد‬ ‫هزار‬ ‫با‬ ‫تاپی‬ ‫لپ‬ ‫روی‬ ‫تست‬ ‫این‬۴‫و‬ ‫رم‬ ‫گیگ‬cpu‫ای‬ ‫هسته‬ ‫دو‬amd‫و‬ .‫گرفته‬ ‫انجام‬ ‫ساتا‬ ‫معمولی‬ ‫هارد‬ ‫و‬ ‫های‬ ‫دیتابیس‬ ‫جدول‬ ‫از‬ ‫یکی‬ ‫با‬ibs‫که‬۳‫احتمالش‬ ‫و‬ .‫شده‬ ‫تست‬ ‫هست‬ ‫تایی‬ ‫صدهزار‬ ‫و‬ ‫میلیون‬ .‫کنند‬‫تغییر‬ ‫هم‬ ‫نتایج‬ ،‫آزمایش‬ ‫ایط‬‫ر‬‫ش‬‫تغییر‬ ‫با‬ ‫که‬ ‫هست‬ MongoDB innfinision.net
  • 40. MongoDB .‫گرفته‬ ‫انجام‬ ‫نوشتم‬ ‫که‬ ‫پایتونی‬ ‫کد‬ ‫با‬ ‫ها‬ ‫تست‬ ‫این‬ ‫یا‬ ‫کش‬ ‫بصورت‬ ‫داده‬ ‫مونگو‬ ‫خود‬ ‫شیوه‬ ‫به‬ ‫ایمپورت‬ ‫در‬bulk‫زمان‬ ‫در‬۲:۱۴‫ایمپورت‬ ‫نوع‬ ‫در‬ ‫و‬ ‫برد‬ ‫زمان‬ ‫کامند‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫خودم‬ ‫کد‬ ‫از‬ ‫استفاده‬ ‫برد.)بدون‬ ‫زمان‬ ‫ساعت‬ ‫نیم‬ ‫بالی‬ ‫تکی‬mongoimport( ‫ماژول‬ ‫از‬ ‫استفاده‬ ‫با‬‫زیر‬ ‫نتایج‬ ‫ولی‬MongoDriver.‫میباشد‬ ‫که‬ ‫مواقعی‬ ‫اینکه‬ ‫جالب‬ ‫نکته‬query‫تا‬ ،‫میشود‬ ‫داده‬ ‫گشت‬‫بر‬‫سریعتر‬ ‫نتیجه‬ ‫میباشد‬‫بیشتر‬ ‫شروط‬ ‫با‬ ‫که‬ ‫مواقعی‬query.‫میباشد‬‫کمتر‬ ‫شرط‬ ‫با‬ innfinision.net