まず、ニアドキュメントを計算するためのmaxDistanceと参照ポイントが必要です。次のコードは、近くのドキュメントをクエリするDBObjectを作成する方法を示しています。
double[] coords = new double[2];
long distance = 100;
DBObject query = BasicDBObjectBuilder.start()
.push("location")
.add("$maxDistance", distance)
.push("$near")
.push("$geometry")
.add("type", "Point")
.add("coordinates", coords)
.get();
これにより、そのjsonが生成されます:
{
"location": {
"$maxDistance": 100,
"$near": {
"$geometry": {
"type": "Point",
"coordinates": [
0,
0
]
}
}
}
}
mongodb 2.2を使用している場合、上記のコードは機能しません。以下を使用する必要があります:
double[] coords = new double[2];
long distance = 100;
DBObject query = BasicDBObjectBuilder.start()
.push("location")
.add("$maxDistance", distance)
.add("$near", coords)
.get();
jsonは次のようになります:
{
"location" : {
"$maxDistance" : 100,
"$near" : [
0,
0
]
}
}
ニアクエリの詳細については、こちらをご覧ください:
http://docs.mongodb.org/manual/reference/operator/near/