MongoDB #10
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: دو دقیقه

حذف سند در MongoDB
متد ()remove
متد ()remove برای حذف یک سند از مجموعه، استفاده می‌شود. متد ()remove دو پارامتر را می‌پذیرد:
1. deletion criteria (اختیاری): اسناد با توجه به شرط‌های تعیین شده در این پارامتر حذف خواهند شد.
2. justOne (اختیاری):  اگر مقدار آن به true یا 1 تنظیم شود، فقط یک سند حذف می‌شود.

گرامر
گرامر پایه متد ()remove به شکل زیر است:
>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)

مثال
مجموعه mycol را ملاحظه کنید که داده‌های زیر را دارد:
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
مثال زیر همه سندهایی را که عنوان آنها 'MongoDB Overview' است، حذف می‌کند:
>db.mycol.remove({'title':'MongoDB Overview'})
>db.mycol.find()
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
>

حذف فقط یک سند
اگر چندین سند وجود دارد و می‌خواهید فقط اولین رکورد را حذف کنید، مقدار پارامتر justOne را به true یا 1 تنظیم کنید:
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

حذف همه‌ی اسناد
اگر نمی‌خواهید شرطی را برای حذف تعیین کنید، MongoDB تمام اسناد یک مجموعه را حذف خواهد کرد. این معادل دستور truncate در SQL است:
>db.mycol.remove()
>db.mycol.find()
>

پرتو در MongoDB
در MongoDB، پرتو (Projection) به معنی انتخاب داده‌های ضروری بجای انتخاب همه داده‌های یک سند است. اگر یک سند 5 فیلد دارد و شما نیاز به نمایش سه فیلد دارید؛ پس فقط باید 3 فیلد از آنها را انتخاب کنید.

متد ()find
متد ()find که در قسمت اجرای کوئری در سند MongoDB توضیح داده شد، دو پارامتر اختیاری ورودی می‌گیرد که دومین پارامتر، لیست فیلدهایی است که می‌خواهید واکشی کنید. در MongoDB، وقتی متد ()find را اجرا می‌کنید، همه فیلدهای یک سند به نمایش گذاشته می‌شوند. برای محدود کردن این متد، یک لیست از اسامی فیلدها با مقدار 0 یا 1 نیاز دارید. عدد 1 برای نمایش فیلد و عدد 0 برای عدم نمایش فیلد استفاده می‌شود.
گرامر
گرامر پایه متد ()find با پرتو بصورت زیر است:
>db.COLLECTION_NAME.find({},{KEY:1})

مثال
مجموعه mycol با داده زیر را ملاحظه کنید:
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
مثال زیر عناوین اسناد را هنگام اجرای کوئری نشان خواهد داد:
>db.mycol.find({},{"title":1,_id:0})
{"title":"MongoDB Overview"}
{"title":"NoSQL Overview"}
{"title":"Tutorials Point Overview"}
>
توجه کنید که فیلد _id موقع اجرای متد ()find همیشه نمایش داده خواهد شد. اگر نمی‌خواهید این فیلد را نمایش دهید، مقدار آنرا 0 تنظیم کنید.