Pokud používáte MongoDB 3.2, můžete použít jedinečný částečný index místo řídkého indexu.
Částečný index se ve skutečnosti doporučuje před řídkým indexem
Příklad
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 } } } })
Ve výše uvedeném příkladu bude jedinečný index vytvořen pouze při userId
je přítomen a neobsahuje hodnotu null. Totéž platí pro anonymousId
taky.
Viz https://docs.mongodb.org/ manual/core/index-unique/#unique-partial-indexes