spring-data-mongodb (バージョン 1.0.2.RELEASE) と mongodb (バージョン 2.2) を使用しています。オブジェクト Location のリストを含むオブジェクト A があります。クラスは次のとおりです。
public class A {
@Id
private ObjectId id;
private List<Location> places;
//GETTER AND SETTER
}
public class Place {
private String name;
private String description;
@GeoSpatialIndexed
private double[] location;
//GETTER AND SETTER
}
特定の場所にあるすべてのオブジェクト A を見つける必要があります。次のように、演算子 $within と $elemMatch を一緒に使用しようとしました。
@Query(value = "{'places' : { $elemMatch: { location: {'$within' : {'$center' : [?0, ?1]} } }}}")
public List<A> findByLocation(Point location, double radius);
このクエリを実行すると、次の例外が発生します。
org.springframework.data.mongodb.UncategorizedMongoDbException: 特別なインデックスが見つかりません: 2d for: { 場所: { $elemMatch: { 場所: { $within: { $center: [ { x: 41.904159, y: 12.549132 }, 0.07000000000000001 ] } } } }; ネストされた例外は com.mongodb.MongoException: 特別なインデックスが見つかりません: 2d for: { 場所: { $elemMatch: { 場所: { $within: { $center: [ { x: 41.904159, y: 12.549132 }, 0.0700000000000001 ] } } } } }
助言がありますか?
よろしく