The {unique: true} only guarantees uniqueness across objects, it does NOT guarantee uniqueness of the array elements inside the array.
But check out the addToSet functionality of mongodb.
Also this very similar question here. How to ensure unique item in an array based on specific fields - mongoDB?