Spring Data MongoDB索引(唯一= true)

chu*_*ubs 8 java annotations mongodb spring-data

我有一个很多麻烦的问题Spring Data,并MongoDB当它涉及到一个索引的字段.

我已经在文档,但他们不是在解释之间的差别非常好的@Indexed(unique=true)@Indexed(unique=false).

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

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

现在我把它设置为unique=true,但我正在考虑设置它来unique=false解决这个问题.

这会解决这个问题吗?

还有什么其他问题我可以通过放松这个来添加?

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

Art*_*ves 12

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

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

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