Đầu tiên, bạn sẽ cần một maxDistance và một điểm tham chiếu để tính toán gần các tài liệu. Đoạn mã dưới đây cho thấy cách tạo một DBObject để truy vấn gần tài liệu.
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();
Điều này sẽ dẫn đến json:
{
"location": {
"$maxDistance": 100,
"$near": {
"$geometry": {
"type": "Point",
"coordinates": [
0,
0
]
}
}
}
}
Nếu bạn đang sử dụng mongodb 2.2, mã trên sẽ không hoạt động. Tôi phải sử dụng những thứ sau:
double[] coords = new double[2];
long distance = 100;
DBObject query = BasicDBObjectBuilder.start()
.push("location")
.add("$maxDistance", distance)
.add("$near", coords)
.get();
Json sẽ là:
{
"location" : {
"$maxDistance" : 100,
"$near" : [
0,
0
]
}
}
Bạn có thể tìm thêm thông tin về các truy vấn gần đây:
http://docs.mongodb.org/manual/reference/operator/near/