使用Spring Data查找所有mongo查询

时间:2012-05-30 02:51:38

标签: mongodb spring-data

我正在使用spring数据和mongo db数据库开发后端。

我得到了以下课程

@Document
public class Place
{
    @Id
    private String id;
    @GeoSpatialIndexed
    private Double[] location;
    private int[] category;
    //gets and sets
}

所以我想进行一个查询,以获得具有所选类别的Point附近的地方,所以我得到了这个:

public List<Place> getPlacesNear(Double[] location, int[] category){
        NearQuery geoNear = NearQuery.near(location[0],location[1],Metrics.KILOMETERS).maxDistance(KM_DISTANCE);
        Query categoryQuery = new Query(new Criteria("category").all(category));
        geoNear.query(categoryQuery);
        GeoResults<Place> geoNearResult = mongoTemplate.geoNear(geoNear, Place.class);
        //return results
}

但这不会返回任何结果,我知道查询。

db.place.find( { category: { $all: [ categoryID, categoryID2 ] } } );

效果很好,geoNear不是问题。

这是一个愚蠢的问题,但是Mongo的Spring Data的文档和示例非常基础,任何帮助或链接都可以提供有用的教程或文档,谢谢! :)

1 个答案:

答案 0 :(得分:3)

我发现问题而不是传递

Query categoryQuery = new Query(new Criteria("category").all(category));

作为类别int [],我传递了一个idCategory,idCategory2

Query categoryQuery = new Query(new Criteria("category").all(idCategory,idCategory2));

并且效果很好:)