Als u MongoDB 3.2 gebruikt, kunt u unieke gedeeltelijke index . gebruiken in plaats van een schaarse index.
Gedeeltelijke index wordt eigenlijk aanbevolen boven schaarse index
Voorbeeld
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 } } } })
In het bovenstaande voorbeeld wordt de unieke index alleen gemaakt als userId
is aanwezig en bevat geen null-waarde. Hetzelfde geldt voor anonymousId
ook.
Zie https://docs.mongodb.org/ manual/core/index-unique/#unique-partial-indexes