2

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 ] } } } } }

助言がありますか?

よろしく

4

2 に答える 2