Я пытаюсь выполнить геопространственный запрос в MongoDB через Apache Spark.
Это рабочий код в Java
BasicDBObject fields = new BasicDBObject.append(("geoid",1);
BasicDBObject queryDoc=new BasicDBObject("geometry", new BasicDBObject("$near", new BasicDBObject("$geometry", new BasicDBObject("type", "Point")
.append("coordinates", Arrays.asList(longi, lat)))
.append("$maxDistance", 100)));
Версия запроса Json:
{
geometry: {
$near: {
$geometry: {
type: "Point",
coordinates: [-87.674179, 41.97646]
},
$maxDistance: 100
}
}
}
Теперь в spark я попытался добавить запрос следующим образом:
Map<String, String> mongoConfig = new HashMap<String, String>();
String query=" {\n" +
" geometry:\n" +
" {\n" +
" $near :\n" +
" {\n" +
" $geometry: { type: \"Point\", coordinates: [-87.674179, 41.97646] },\n" +
" $maxDistance: 100\n" +
" }\n" +
" }\n" +
" }";
mongoConfig.put("mongo.input.query",query);
JavaSparkContext jsc = new JavaSparkContext(session.sparkContext());
ReadConfig readConfig = ReadConfig.create(session).withOptions(mongoConfig);
Но это, похоже, не имеет никакого эффекта.
Я забираю все документы в коллекции.
Чего мне не хватает?