spring数据mongodb"id"字段映射

spring data mongodb "id" field mapping

我有一个包含数组字段的文档

"chapters": [
  { "id" : "14031871223912313", ...}
  ...
  ]

我想用 Spring 数据的 MongoTemplate 查询 return ID,使用以下方法:

class Chapter {
 private String id;
 public String getId() {
        return id;
    } 
}

这样就不会填充 id。我尝试使用不同的映射选项和此处描述的@Field http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mapping.conventions.id-field

我做错了什么?我知道我总是可以回到 mongo java 驱动程序,但我认为这应该有效。

在此先感谢您的帮助。

在 MongoDB 中的 ID 是 _id,而在 mongo 中的每个文档都有一个 _id。从您链接到的文档中,Spring 会将 @Field String id 映射到 mongo 的 _id 字段。您可能想要使用 @Field('id') String id 字段映射来指示您想要的字段是 id 而不是 _id.

找到解决办法。它通过以下方式填充:

  @Field("id")
  private String chaperId