0

我正在使用 springmongo 1.7.2 和 mongodb 2.6.0

我的集合对象在 JSON 中如下所示:

{
    "childObject1" : {

        "description" : "Lorem ipsum",

        childObject2" : {
            "someField" : "someValue",
            "loc" : [-82.123123, 28.123123123]
        }
    }
}

为了构建一个文本查询以及地理空间数据,我使用以下内容,它工作正常:

TextCriteria textCriteria = TextCriteria.forDefaultLanguage().matchingAny(searchTerms); 

Point point = new Point(long, lat);
Distance d = new Distance(radius, Metrics.MILES);
Circle circle = new Circle(point, radius/69.172);
Criteria gloablCriteria = Criteria.where("childObject1.childObject2.loc").within(circle);

Query q = new Query();
q = TextQuery.queryText(textCriteria);
q.addCriteria(globalCriteria);

List<MyObject> results = mongoOps.find(q, MyObject.class);

但是,如果我将 loc 对象的格式更改为 GeoJSON(如下所示),则无法使查询正常工作。结果列表为空,服务器控制台上没有错误。

"loc" : {"type" : "Point", "coordinates":[-82.123123, 28.123123123]}

PS 更改 loc 属性的格式后,我删除并重新创建了地理空间索引:

createIndex("{MyObject.childObject1.childObject2.loc":"2dsphere"})
4

0 回答 0