可以做到不是必填字段,但是填写时保证唯一?

来源:3-8 【读取文档】动手实战 - 玩转文档游标

香饽饽0

2019-03-30

只能自己在业务上做限制吗?

写回答

1回答

Stannum

2019-03-30

同学你好~我们在课程第5章中讲到了如何使用唯一性索引来确保某个字段值的唯一性。这里我给你提供一点扩展性知识:我们可以使用一个叫做partialFilterExpression的参数来实现只对一部分满足我们要求的文档中的字段应用唯一性索引:

db.accounts.createIndex(
  { name: 1 },
  { unique: true, partialFilterExpression: { $exists: true } }

)

在这个partialFilterExpression参数下,你可以提供一个筛选文档,用来告诉MongoDB哪些文档的name字段必须保证值的唯一性。比如上面这个例子中,只有当文档中存在name字段时,我们的索引才会要求name字段的值不能够重复。而对于不包含name字段的文档,这个唯一性索引则对它不起作用。

这个参数是否满足了你的应用要求呢?

1
1
香饽饽0
非常感谢!
2019-03-31
共1条回复

玩转MongoDB4.0(最新版) 从入门到实践

30%理论+70%实战,用实操检验真理,一门让你事半功倍的入门进阶课

1138 学习 · 197 问题

查看课程