@Id
—— 将属性指定为文档的 Id(在 Spring Data Commons 中)@Document
—— 声明实体类型要持久化为 MongoDB 文档@Field
—— 指定持久化文档中存储这个属性的字段名称(以及可选的顺序)@Id
和 @Document
注解是必须有的。除非另行指定,否则没有使用 @Field
注解的属性,将假定字段名等于属性名。@Document
注解放置在类级别上,以指示 Ingredient 是一个文档实体,可以写入 Mongo 数据库并从中读取。默认情况下,Collection
名称(Mongo 中类似于关系数据库的 Table)基于类名,第一个字母小写。因为你没有进行指定,Ingredient 对象将持久化到名为 ingredient
的 Collection
中。但是您可以通过设置 @Document 的 collection
属性来改变这一点:@id
注解,这指定了此属性作为持久化文档的 ID 。您可以在任何属性上使用 @Id
注解,只要其类型是可序列化的,这包括 String 和 Long。在现在这种情况下,您的 id 属性是 String 类型,所以没有必要将其更改为其他类型。@Document
注解。您还需要用 @Id 指定一个 ID 属性。这样做以后的 Taco 类如下:@Id
可以应用于任何可序列化的类型。但是如果您选择使用 String 属性作为 ID,那么 Mongo 会在保存时自动为其赋值(如果它是空的)。通过选择 String,您可以获得一个由数据库管理的自动分配的 ID,而不必费心手动设置该属性。@Document
注解的类型或只是一个 POJO。@Document
和 @Id
注解,就像其他实体类型那样。即便如此,您还是要为 user 属性加上 @Field
注解,以指定在持久化文档中,使用 customer
字段来进行存储。@Document
和 @Id
以及偶尔使用 @Field
,对于 MongoDB 的映射就足够了。这三个注解就完全满足了 Taco Cloud 应用的类型映射工作。