【问题标题】:Spring Data MongoDB Indexed(unique=true)Spring Data MongoDB 索引(唯一=真)
【发布时间】:2012-12-16 20:12:56
【问题描述】:

当涉及到索引字段时,Spring DataMongoDB 有很多问题。

我查看了文档,但它们不太擅长解释 @Indexed(unique=true)@Indexed(unique=false) 之间的区别。

我有一个我想要索引的字段,以便我可以对它执行快速查询。在这种情况下,它的电子邮件地址通常应该是唯一的,但 emailAddress 可能在一段时间内为空。

但是,一旦有一条记录为空 emailAddress,我就不能有任何其他带有空 emailAddress 的记录。 Spring Data 拒绝使用null emailAddresses 插入任何其他记录。它没有抛出任何它不起作用的东西。

现在我已将其设置为 unique=true,但我正在考虑将其设置为 unique=false 以解决此问题。

这会解决问题吗?

通过放松这个,我还能增加什么其他问题?

MongoDB 是否允许我拥有多个相同的电子邮件地址并且仍然可以快速查询?

【问题讨论】:

    标签: java mongodb annotations spring-data


    【解决方案1】:

    来自 mongodb 文档: http://docs.mongodb.org/manual/core/indexes/#unique-indexes

    因此,如果您有唯一的键,请不要将其设置为 null。

    说实话,在您的用例(电子邮件字段)中,我相信您不需要使用唯一键,您可以使用稀疏键,因此,没有电子邮件的文档不会占用您的 btree索引,这将节省您的空间,并提高查找速度。

    【讨论】:

      猜你喜欢
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      • 2020-09-13
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多