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;
@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;