2012-09-22 4 views
0

뭔가 잘못하고 있거나 버그인지 잘 모르겠습니다.스프링 데이터 mongoDB GeoNear 쿼리 (필드 제외)

Query criteria = new Query(Criteria.where("locationTime").gte(
      "date-time")); 
    criteria.fields().exclude("friends"); 

    NearQuery query = NearQuery.near(point).maxDistance(maxDistance) 
      .num(limit).query(criteria); 
    GeoResults<Profile> result = mongoTemplate 
      .geoNear(query, Profile.class); 

나는 거리와 "locationTime"기준에 따라 정확하게 검색하여 근처에있는 쿼리 및 프로파일을 실행하고 있지만 제외 된 필드를 무시하는 것하고 친구들과 프로필을 검색 : 나는 다음과 같은 코드가 있습니다.

간단한 쿼리를 사용하면 exclude/include 필드가 완벽하게 작동합니다.
나는 어디에서든지 닮은 유스 케이스를 찾지 못했습니다. 내가 잘못하고 있다면 알려주십시오.

감사합니다.

답변

1

내가 알고있는 한 geoNear 명령으로 필드를 제한 할 수있는 방법이 없습니다.

스프링 데이터의 제한 사항을 해결하기 위해 executeCommand을 호출했지만, 원시 명령에서 처리 할 방법조차 갖고 있지 않은 것처럼 보입니다.

+0

GeoNear 쿼리에서 제외하려는 데이터가 많습니다. 전체 문서를 가져와야한다고 말하고 있습니까? 주변에 어떤 문제가 있습니까? 그렇게하면 속도가 느려질 것입니다. –

+0

일반적인 find 구문에서'$ near'를 사용해보십시오. http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-Querying'geoNear'가 할 수있는 모든 것을 할 수는 없지만 쿼리를 넣을 수 있다면 필드를 제한 할 수 있습니다. 보통 찾을 것입니다. –

+0

고맙습니다 ... 기본적으로 필드를 제외한 검색어 근처의 mongo geo에서 지원되지 않는 것을 말씀 하시겠습니까? 또는 스프링 데이터 문제입니까? –

관련 문제