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

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

کوئری‌زدن به آرایه‌ها و اپراتورهای size$ و all$

زمانی که بحث از کوئری زدن به آرایه ها می شود، مسائل مختلفی در ذهن ما می آید که باید آن ها را بررسی کنیم. برای شروع این جلسه از پایگاه داده ی user خودم استفاده می کنم. اگر از جلسات قبل یادتان باشد کاربران زیر را تعریف کرده بودیم: db.users.find().pretty()  فرض کنید به دنبال داده هایی هستیم که hobby (سرگرمی) افراد در آن Gym (رفتن به باشگاه) است. به نظر شما آیا برای این کار می توانیم کد زیر را اجرا کنیم؟ اگر کد بالا را اجرا کنید، هیچ خروجی نخواهید گرفت! چرا؟ من چند خط بالاتر کاربران را به همراه داده هایشان برایتان قرار داده ام. اگر به آن ها نگاه کنید، ساختار hobbies را به شکل زیر می بینید. با اجرای کد بالا هیچ مقداری برایتان برگردانده نمی شود. چرا؟ به دلیل اینکه درون فیلد hobbies هیچ document ای به شکل بالا وجود ندارد. تمام document های موجود در hobbies حتما دارای فیلد های title و frequency هستند و این برابر مطلق نیست. بنابراین اگر به دنبال روش برابری مطلق بودیم باید می گفتیم: db.users.find({hobbies: {title: “Gym”, frequency: 6}}).pretty()