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

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

درک بهتری از find و شیء cursor

برای شروع این جلسه می خواهم یک collection جدید به نام passengers را به پایگاه داده ی خودم اضافه کنم. من یک آرایه از اشیاء JSON را برایتان آماده کرده ام تا با insertMany وارد collection کنید. توجه داشته باشید، از آنجایی که passengers وجود ندارد، به صورت خودکار به عنوان یک collection ساخته می شود (در جلسات قبل در این مورد توضیح داده بودم). با اجرای کد بالا نتیجه ی زیر را دریافت می کنیم. نکته: همیشه لازم نیست دستورات را کامل تایپ کنید. مثلا اگر بگویید db.passe و سپس کلید tab را بزنید، خود ترمینال آن را تبدیل به db.passengers می کند و کارتان راحت تر می شود (قابلیت autocompletion). در حال حاضر اگر دستور ()db.passengers.find().pretty را اجرا کنیم، نفر آخر (آقای Gordon Black) مشاهده نمی شود اما در انتهای لیست پیامی به شکل زیر نمایش داده شده است. بنابراین اگر دستور it را تایپ کنیم (به صورت خالی و بدون هیچ پسوند و پیشوندی) آقای Gordon Black را می بینیم. چرا چنین اتفاقی می افتد؟ چرا فقط 20 نتیجه ی اول برگردانده شده اند (20 نتیجه محدودیت تعیین شده توسط MongoDB Shell است)؟ دستور find در اصل داده ها را به ما برنمی گرداند، بلکه یک شیء cursor به ما می دهد. به تصویر زیر نگاه کنید: