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
の場合にのみ作成されます 存在し、null値を含みません。同じことがanonymousId
にも当てはまります
https://docs.mongodb.org/をご覧ください。 manual / core / index-unique /#unique-partial-indexes