Ако използвате MongoDB 3.2, можете да използвате уникален частичен индекс вместо разреден индекс.
Частичният индекс всъщност се препоръчва пред редкия индекс
Пример
db.users.createIndex({ "userId": 1, "project": 1 },
{ unique: true, partialFilterExpression:{
userId: { $exists: true, $gt : { $type : 10 } } } })
db.users.createIndex({ "anonymousId": 1, "project": 1 },
{ unique: true, partialFilterExpression:{
anonymouseId: { $exists: true, $gt : { $type : 10 } } } })
В горния пример уникален индекс ще бъде създаден само когато userId
присъства и не съдържа нулева стойност. Същото важи и за anonymousId
също.
Моля, вижте https://docs.mongodb.org/ manual/core/index-unique/#unique-partial-indexes