春天数据mongodb" id"场映射

时间:2015-04-14 21:35:03

标签: mongodb spring-data-mongodb mongodb-java

我有一个带有

的数组字段的文档
"chapters": [
  { "id" : "14031871223912313", ...}
  ...
  ]

我想使用以下内容查询使用Spring Data的MongoTemplate返回id:

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

这样就不会填充id。我尝试使用http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mapping.conventions.id-field

中描述的@Field的不同映射选项

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

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:9)

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

  @Field("id")
  private String chaperId

答案 1 :(得分:1)

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