MongoDB

MongoDB — جستجو (Find)

آخرین بروزرسانی: 1404/08/20

جستجو (Find)

اینجا «جستجو MongoDB» را با شل «مونگوش (mongosh)» تمرین می کنیم. «کوئری (Query)» یعنی فیلتر کردن داده ها. با دو متد find() و findOne() کار می کنیم.

انتخاب همه اسناد با find()

متد find() از یک کلکشن، اسناد را برمی گرداند. اگر کوئری خالی باشد، همه برمی گردند.

db.posts.find()

مشاهده در ادیتور

گرفتن یک سند با findOne()

متد findOne() فقط یک سند برمی گرداند. اگر کوئری خالی باشد، اولین سند بازمی گردد.

db.posts.findOne()

مشاهده در ادیتور

نکته: findOne() فقط اولین تطابق را می دهد.

کوئری کردن داده ها

برای فیلتر کردن، شیء کوئری بده. مثل انتخاب برگه های «News» در پوشه.

db.posts.find({ category: "News" })

مشاهده در ادیتور

پروژکشن (Projection) فیلدها

«پروژکشن (Projection)» یعنی تعیین فیلدهای خروجی. مقدار 1 یعنی نمایش. مقدار 0 یعنی عدم نمایش.

db.posts.find({}, { title: 1, date: 1 })

مشاهده در ادیتور

نکته: فیلد _id پیش فرض نمایش داده می شود مگر اینکه حذفش کنی.

db.posts.find({}, { _id: 0, title: 1, date: 1 })

مشاهده در ادیتور

می توانی فقط یک فیلد را حذف کنی و بقیه بمانند.

db.posts.find({}, { category: 0 })

مشاهده در ادیتور

هشدار: در یک شیء پروژکشن، 0 و 1 را باهم قرار نده. فقط _id استثناست.

db.posts.find({}, { title: 1, date: 0 })

مشاهده در ادیتور

گام های عملی

  1. با افزودن داده چند سند بساز.
  2. با find() و کوئری ساده، نتایج را بگیر.
  3. با پروژکشن، خروجی را سبک و دقیق کن.

ادامه مسیر

برای عملیات بیشتر، صفحه به روزرسانی را ببین. همچنین راهنمای API کوئری MongoDB را دنبال کن.

جمع بندی سریع

  • find() لیست اسناد را می دهد.
  • findOne() فقط یک سند می دهد.
  • کوئری شیء فیلتر است.
  • پروژکشن فیلدهای خروجی را تعیین می کند.
  • _id را جداگانه حذف کن.