2015-04-14 83 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 –