Spring 数据 Mongo 嵌套 ID 无效

Spring Data Mongo nested id won't work

Spring 数据是否以不同方式处理 mongo 嵌套的 "id" 属性?我解释一下我的问题:我有集合 matches 具有以下结构

"teams":  [
        {
            "id" : "5601",
            "name" : "FC Basel"
        },
        ... // more
    ]

当我想检索团队 ID 为 5601 的所有比赛时,我执行以下查询

db.matches.find({ "teams.id" : "5601"})

效果很好,returns 一些对象。

当我做一个方法时

public List<MatchMongo> findByTeams_id(String id);

在我的 MatchRepository 界面上,我得到 0 个结果。 日志显示

Created query Query: { "teams.id" : "5601"}, Fields: null, Sort: null

find using query: { "teams.id" : "5601"} fields: null for class: class
MatchMongo in collection: matches

所以他提出的查询似乎是正确的...:S 尝试使用其他字段(例如 referee.name)有效。

我什至尝试使用 @Query 注释,但无法正常工作

还有其他解决办法吗?这是一个错误还是我做错了什么?

哦,找到解决办法了:

MatchMongo 在我有

的地方有 List<TeamMongo> teams;
@Id
private String id;
@Field(value = "id")
private String teamIdAttr;

所以应该调用方法

public List<MatchMongo> findByTeams_teamIdAttr(String id);

没想到方法名应该反映对象属性而不是集合结构

感谢@martin-baumgartner,您的评论有助于解决此问题:)