نکته مهم: این مقاله به مرور زمان، ویرایش و یا تکمیل میشود!
در صورتی که با مشکل تایپی، دستوری و یا مفهومی در این مقاله برخورد کردید، از شما دوست عزیز و گرامی، تقاضا میکنم که مرا مطلع کرده، تا نسبت به تصحیح و تکمیل آن در اسرع وقت اقدام نمایم.
با کمال تشکر داریوش تصدیقی
نسخه ۱.۰
توجه: کماکان در این مقاله نیز فرض بر آن است که در بانک اطلاعاتی test قرار داریم.
همانگونه که در مقاله قبل شاهد آن بودیم، برای مشاهده فهرست کلیه اسناد یک مجموعه، از دستور ذیل استفاده میکردیم:
db.users.find();
با استفاده از یک عبارت JSON و ارسال آن به عنوان پارامتر ورودی find، میتوانیم اسناد خاصی (محدود شده) را بدست آوریم.
به عنوان نمونه، با استفاده از دستور ذیل میتوانیم فهرست اسنادی (کاربرانی) را مشاهده نماییم که نام آنها دقیقا Dariush میباشد:
db.users.find( { "firstName" : "Dariush" } );
توجه: اصطلاحا به این پارامتر ورودی، Criteria گفته میشود.
برای ادامه مسیر، شاید بد نباشد که با استفاده از دستور for تعدادی کاربر، به مجموعه users اضافه نماییم:
for(let i = 1; i <= 20; i++) db.users.insert({ "fullName" : "Full Name " + i, "age" : 20 + i });
پس از اجرای دستور فوق، در صورتی که از دستور ()find استفاده نماییم، در عین ناباوری خواهیم دید که ۲۰ سند به مجموعه users اضافه شده است! (کاربرانی که سن آنها بین ۲۱ تا ۴۰ سال میباشد)
با استفاده از دستور ذیل، میتوانیم فهرست کاربرانی که سن آنها بزرگتر از ۲۰ سال میباشد را مشاهده نماییم:
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 : 25 } } , { "age" : { $gt : 35 } } ] } );
توجه: در تمرین فوق، برای کلید or$، مقدار آن را با استفاده از [ ] یک آرایه (Array) تعریف کردهایم!
توجه: تمام پارامترهای ورودی که از این پس به توابع MongoDB ارسال میکنیم، باید دارای ساختار JSON باشند!
با استفاده از تابع sort و ارسال یک عبارت JSON به آن، مشخص میکنیم که نتیجه اطلاعات، مرتب شده بر اساس چه فیلد و یا فیلدهایی نمایش داده شوند.
فرض کنید که میخواهیم فهرست کاربران را مرتب شده بر حسب سن آنها مشاهده نماییم. برای این منظور از دستور ذیل استفاده میکنیم:
db.users.find().sort( { "age" : 1 } );
در مثال فوق، عدد یک (۱) مشخص میکند که میخواهیم نتیجه اطلاعات (فهرست کاربران)، مرتب شده بر حسب فیلد سن و به صورت از کوچک به بزرگ (Ascending) نمایش داده شوند.
در صورتی که به جای عدد یک (۱) از عدد منفی یک (۱-) استفاده نماییم، اطلاعات کاربران، مرتب شده بر حسب فیلد سن و به صورت از بزرگ به کوچک (Descending) نمایش داده خواهند شد.
db.users.find().sort( { "age" : -1 } );
فرض کنید که میخواهیم فهرست کاربران را مرتب شده برحسب سن (از کوچک به بزرگ) و در صورت یکسان بودن سن، مرتب شده برحسب نام و نام خانوادگی آنها (از بزرگ به کوچک) مشاهده نماییم. برای این منظور از دستور ذیل استفاده میکنیم:
db.users.find().sort( { "age" : 1 , "fullName" : -1 } );
پایان