رفتن به نوشته‌ها

دسته: MongoDB (مونگو دی‌بی)

اعمال projection در آرایه‌ها و محاسبه‌ی طول آن‌ها

ما تا این قسمت از سری آموزشی، با مفهوم projection آشنا شده ایم و از آن هم در کوئری های ساده ی find و هم در فریم ورک aggregation استفاده کرده ایم اما این بار می خواهیم با projection در آرایه ها کار کنیم. قبل از هر کاری باید با ساختار داده های خودمان در کالکشن friends آشنا شویم. برای این کار یک کوئری find ساده کافی است. در این جلسه می خواهیم examScores (نمرات امتحانات) را هدف قرار بدهیم و کاری کنیم که به جای نمایش تمام نمرات، فقط اولین سند داخل این آرایه نمایش داده شود. برای این کار اپراتوری به نام slice$ (به معنی «قطعه» یا «تکه») وجود دارد که در ساده ترین حالت خود دو آرگومان می گیرد: نام آرایه ای که باید قطعه شود، تعداد عناصری که باید از آن جدا شوند. بنابراین می توانیم یک کوئری ساده را به شکل زیر بنویسیم. من نیازی به id_ ندارم بنابراین آن را 0 گذاشته ام تا نمایش داده نشود. سپس یک فیلد جدید به نام examScore (توجه کنید که آخرش s ندارد) تعریف کرده ام. این فیلد، اپراتور slice$ را گرفته است و همانطور که گفتم این اپراتور در ساده ترین حالت خود یک آرایه با دو آرگومان می گیرد. اولین آرگومان نام آرایه ی خودمان است که examScores (با s در انتها) می باشد و دومین آرگومان تعداد عناصری است که می خواهیم از آن جدا کنیم. محل شروع شمارش نیز از اول آرایه می باشد بنابراین عدد 1 را پاس داده ام که یعنی فقط اولین عنصر آن را به ما برگردان. با اجرای این کوئری، نتیجه ی زیر را می گیریم: