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

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

آموزش MongoDB - قسمت پنجم

يكشنبه, ۱۷ آبان ۱۳۹۴، ۰۶:۱۳ ب.ظ

در این درس، فرض بر آن است که در بانک اطلاعاتی 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 } );

  • داریوش تصدیقی

نظرات  (۲)

  • بهزاد خلیلی
  • سلام استاد
    مرسی
    با تشکر از مطلب خوبتون
    قسمتی که OR را توضیح دادید gt و lt جا به جا نوشته شده اند.
    پاسخ:
    سلام حمید جان، ممنونم از دقت نظرت... موردی که گفتی اصلاح شد...

    ارسال نظر

    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی