Si vous utilisez MongoDB 3.2, vous pouvez utiliser un index partiel unique au lieu d'un index clairsemé.
L'index partiel est en fait recommandé plutôt que l'index creux
Exemple
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 } } } })
Dans l'exemple ci-dessus, l'index unique ne sera créé que lorsque userId
est présent et ne contient pas de valeur nulle. Il en va de même pour anonymousId
aussi.
Veuillez consulter https://docs.mongodb.org/ manuel/core/index-unique/#unique-partial-indexes