Spring mongodb java 中地理空间字段的 2dsphere 索引注释...?

Spring mongodb annotation for 2dsphere index for a geospatial field in java...?

@JsonSerialize
@Document(collection = "fence")
@CompoundIndexes({
        @CompoundIndex(name = "loc_groupId_idx", 
                       def = "{ 'loc': 2dsphere, 'groups.groupId': 1 }",      
                       unique = false) })
public class GeofenceMongoVO {

  public GeofenceMongoVO() {}

  @Id
  private String fenceId;

  @Field
  private Long customerId;

  @Field
  private String fenceName;

  @Field
  private Byte type;

这就是我如何尝试确保地理空间字段和子文档 (groupId) 字段的复合索引。但不幸的是,这不起作用。有没有一种方法可以通过注释确保 java 代码的 2dsphere 索引?

我不确定是否可以使用注释来完成,但我发现了一个博客 post here 他们使用 ensureIndex 来完成。像 th

@Autowired
MongoTemplate template;

public void setupIndex()
{
    template.indexOps(Location.class).ensureIndex( new GeospatialIndex("position") );
}

从 Spring Data MongoDB 1.10.10.RELEASE 开始,您可以注释任何字段,无论是在文档根目录还是在子文档中:

@GeoSpatialIndexed(type = GeoSpatialIndexType.GEO_2DSPHERE)
private GeoJsonPoint myGeometry;