قبل از شروع این جلسه باید مثالی خاصی از جلسه ی قبل (partial index ها) را بررسی کنیم. زمانی که partial index ها را با index های unique ترکیب می کنیم به نتیجه ی جالبی می رسیم اما بهتر است این کار را به صورت عملی انجام بدهیم. برای انجام این کار باید یک کالکشن جدید به نام users تعریف کنیم و داده های جدیدی را در آن قرار بدهیم: db.users.insertMany([{name: “Amir”, email: “Amir@test.com”}, {name: “Nastaran”}]) در اینجا دو کاربر جدید را وارد کالکشنی جدید به نام users کرده ایم که در آن کاربر اول ایمیل دارد اما کاربر دوم فقط name را دارد و از ایمیل خبری نیست. در مرحله ی بعدی باید یک index را برای این کالکشن تعریف کنیم. من در ابتدا کد زیر را تست می کنم: db.users.createIndex({email: 1}) این کد با موفقیت اجرا می شود بنابراین می دانیم که مشکلی نیست. حالا این ایندکس را حذف کنید تا این بار آن را به صورت unique تعریف کنیم: همانطور که می بینید خطا می گوید ایمیل وارد شده تکراری است! از آنجایی که کاربر Nastaran ایمیلی نداشته است، مقدار آن برایش null در نظر گرفته می شود و حالا که می خواهیم Pooya را به آن اضافه کنیم به ما خطا داده می شود چرا که Pooya نیز بدون ایمیل است بنابراین null تکرار خواهد شد! بنابراین به یاد داشته باشید که MongoDB رفتار خاصی دارد. اگر داده های ایندکس شده ی شما مقداری نداشته باشند، برای MongoDB به صورت null در نظر گرفته می شوند. اگر می خواهید این رفتار را نداشته باشید، باید ایندکس ها را به شکل دیگری تعریف کنید. من در ابتدا ایندکس قبلی را حذف می کنم:
پنل نویسندگان
