mongodb not support validation, and sub doc unique
improve code of update