MongoDB

MongoDB — $project ($project)

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

$project ($project)

در تجمیع (Aggregation)، «پروژکشن فیلدها» یعنی انتخاب فیلدهای خروجی. مرحله $project دقیقاً همین کار را انجام می دهد، مثل پروژکشن در find().

پروژکشن فیلدها با $project

با $project فقط فیلدهای لازم عبور می کنند. این کار خروجی را سبک تر می کند.

نکته: $project همان قواعد پروژکشن معمولی را دارد. بنابراین رفتار آن آشناست.

مثال از sample_restaurants

فقط نام، نوع غذا و آدرس را نگه می داریم. سپس پنج مورد را نشان می دهیم.

db.restaurants.aggregate([
  {
    $project: {
      "name": 1,
      "cuisine": 1,
      "address": 1
    }
  },
  {
    $limit: 5
  }
])

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

قوانین شامل/حذف فیلدها

برای «شامل» از 1 و برای «حذف» از 0 استفاده کن. فیلد _id همیشه هست، مگر آن را 0 کنی.

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

گام های عملی

  1. ابتدا فیلدهای لازم را مشخص کن.
  2. در صورت نیاز، $limit را اضافه کن.
  3. در پایان، خروجی را بررسی و ذخیره کن.

برای محدودسازی نتایج از $limit کمک بگیر. همچنین مرتب سازی را در $sort ببین. راهنمای کامل پروژکشن فیلدها همینجاست.

جمع بندی سریع

  • $project فیلدهای خروجی را انتخاب می کند.
  • با 1 شامل، با 0 حذف می شود.
  • _id پیش فرض شامل است.
  • با $limit ترکیب کن تا خروجی سبک تر شود.