2015-04-14 42 views
0

我有一个数组字段的文档与春天数据MongoDB的 “ID” 字段映射

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

我想查询使用返回的ID与Spring Data的MongoTemplate如下:

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驱动程序,但我认为这应该工作。

在此先感谢您的帮助。

+1

* “与@Id(org.springframework.data.annotation.Id)注释字段将被映射到 '_id' 领域。” * –

回答

4

找到了解决办法。它是通过填充:

@Field("id") 
    private String chaperId 
-1

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

+0

怎么样'@ Id'? –

+0

@tantalum是的,即使当使用@Field(“id”)String id'没有被填充 –

+0

@MarkusWMahlberg不能使用'@ Id',因为它不是文档的id –