Spring Data MongoDB映射中的强制属性顺序

And*_*rff 3 java spring mongodb spring-data

我有一个Location对象,当它们被持久化为mongodb时我需要强制它们的顺序,但我没有太多的运气搞清楚如何去做.Location类看起来像:

Location {
   float lat;
   float lon;
   County county;
}
Run Code Online (Sandbox Code Playgroud)

当它被持续到mongo时,县总是在拉特和勒恩之前.这是一个问题,因为我试图在其上放置一个geoindex,前两个属性必须是lat/long.

我试过了:

@XmlRootElement(name="location")
@XmlType(propOrder={"latitude", "longitude", "county"})
Location {
   float lat;
   float lon;
   County county;
}
Run Code Online (Sandbox Code Playgroud)

当location对象被序列化为xml到我的客户端,而不是DB.似乎spring数据或某些mongo mapper总是按字母顺序执行操作.

有谁知道如何强制订单属性持久存入mongo?谢谢!

Kai*_*tsu 7

您可以使用@Field注释的order属性强制字段顺序.所以,如果你有:

Location {
   @Field(order = 1)
   float lat;

   @Field(order = 2)
   float lon;

   @Field(order = 3)
   County county;
}
Run Code Online (Sandbox Code Playgroud)

字段按以下顺序保存:lat,lon,county.