gpt4 book ai didi

java - Spring MongoDB - @Indexed 和@Field 注释之间的区别

转载 作者:可可西里 更新时间:2023-11-01 10:36:09 24 4
gpt4 key购买 nike

我试图了解在 Java Spring Boot 中定义模型时,@Indexed@Field 这两个不同的注解有何不同。

public class Notation {
@Id
private String id;

@Field("value")
private String value;

@Field("description")
private String description;

@Field("frequency")
private int frequency;
}
public class Notation {
@Id
private String id;

@Indexed("value")
private String value;

@Indexed("description")
private String description;

@Field("frequency")
private int frequency;
}

我的用例是最终实现基于valuedescription 字段的存储库搜索,因此最好了解数据如何由两者组成,可以从这些注释中使用哪些选项。

最佳答案

@Indexed 注释将在您的 mongo 服务器的该字段上添加一个索引。它有一个可选的字符串参数,该参数将是索引名称,与字段名称无关。您应该只索引那些将用于过滤文档的字段。

如果您想在 Java 代码和 MongoDB 集合中使用不同的名称,则使用@Field。

例如。

@Field("desc")
private String description;

在这种情况下,在您的 MongoDB 集合中,您会发现字段名称为“desc”,而在您的 java 代码中,您将其引用为“description”

@Field("description")
private String description;

在上面的例子中,没有必要使用@Field注解

关于java - Spring MongoDB - @Indexed 和@Field 注释之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57105949/

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