gpt4 book ai didi

java - 嵌套属性上的 @Indexed 在 mongo 的 Spring-data 中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:53 26 4
gpt4 key购买 nike

我有以下对象结构:

@Document(collection = "user")
@TypeAlias("user")
public class User {
@Id
private ObjectId id;
private Contact info = new Contact();
}

这是联系人 pojo:

public class Contact {
@Indexed(unique = true)
private String mail;
}

但是由于某些我不知道的原因,我没有看到 Spring-data 为 info.mail 属性创建唯一索引

总而言之,我有用户对象的这个 json 结构:{_id:xxxxx,info:{mail:"abc@xyz.shoes"}}

我想使用具有上述 pojo 结构的 Spring 数据在 info.mail 上创建一个唯一索引。请帮忙。

最佳答案

据我所知,用@Indexed 注释嵌入式字段是行不通的。 @CompoundIndex 是要走的路:

@Document(collection = "user")
@TypeAlias("user")
@CompoundIndexes({
@CompoundIndex(name = "contact_email", def = "{ 'contact.mail': 1 }", unique = true)
})
public class User {
@Id
private ObjectId id;
private Contact info = new Contact();
}

关于java - 嵌套属性上的 @Indexed 在 mongo 的 Spring-data 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22298846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com