mongo设置可选的唯一索引

对于一些可能为空但必须唯一的字段,mongo支持创建部分索引,使用 partialFilterExpression 字段。

MongoDB version >= 3.2

下面以 unique_addr 字段为例,该字段为字符串且记录了唯一地址,但是用户可以选择不填:

db.collection.createIndex(
  { unique_addr: 1 },
  {
    unique: true,
    partialIndexExpression: {
      unique_addr: { $gt: '' }
    }
  }
);

此时mongo仅会为不为空的 unique_addr 字段建立索引。

参考:

https://docs.mongodb.com/manual/core/index-partial
https://stackoverflow.com/questions/35755628/unique-index-in-mongodb-3-2-ignoring-null-values

posted @ 2021-12-24 11:07  夏目有三三  阅读(636)  评论(0)    收藏  举报