问题
I have a document with an array field with
"chapters": [
{ "id" : "14031871223912313", ...}
...
]
I would like to query return the id's with Spring Data's MongoTemplate using the following:
class Chapter {
private String id;
public String getId() {
return id;
}
}
This way the id is not populated. I have tried using the different mapping options with @Field described here http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mapping.conventions.id-field
What am I doing wrong? I know I can always to back to mongo java driver, but I thought this should work.
Thanks in advance for any help.
回答1:
Found a solution. It is populated via:
@Field("id")
private String chaperId
回答2:
In MongoDB id's are _id
, and every document in mongo has an _id
. From the document you linked to, Spring will map @Field String id
to mongo's _id
field. You probably want to use a @Field('id') String id
field mapping to indicate that the field you want is id
not _id
.
来源:https://stackoverflow.com/questions/29637813/spring-data-mongodb-id-field-mapping