$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 است.
گام های عملی
- ابتدا فیلدهای لازم را مشخص کن.
- در صورت نیاز،
$limitرا اضافه کن. - در پایان، خروجی را بررسی و ذخیره کن.
برای محدودسازی نتایج از $limit کمک بگیر. همچنین مرتب سازی را در $sort ببین. راهنمای کامل پروژکشن فیلدها همینجاست.
جمع بندی سریع
- $project فیلدهای خروجی را انتخاب می کند.
- با 1 شامل، با 0 حذف می شود.
_idپیش فرض شامل است.- با $limit ترکیب کن تا خروجی سبک تر شود.