Wenn Sie MongoDB 3.2 verwenden, können Sie einen eindeutigen Teilindex verwenden statt Sparse-Index.
Ein partieller Index wird tatsächlich gegenüber einem Sparse-Index
empfohlenBeispiel
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 } } } })
Im obigen Beispiel wird der eindeutige Index nur erstellt, wenn userId
vorhanden ist und keinen Nullwert enthält. Gleiches gilt für anonymousId
auch.
Siehe https://docs.mongodb.org/ manual/core/index-unique/#unique-partial-indexes