Jika Anda menggunakan $near
perintah maka Anda harus terlebih dahulu mengurutkan berdasarkan jarak atau konsep "dekat" tidak masuk akal. Di globe semuanya bisa "dekat" ke titik tertentu, itu hanya masalah "seberapa dekat".
Anda memiliki dua opsi di sini:
- membatasi hasil
$near
- gunakan
$within
perintah
Saya pikir yang Anda cari adalah $within
perintah
center = [50, 50]
radius = 10
db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
Anda kemudian dapat mengurutkan ini dengan beberapa kunci lain:
db.places.find(...).sort({created:1})
Namun, perintah dalam mungkin memberikan terlalu banyak hasil, jadi Anda mungkin ingin menempatkan beberapa logika untuk membatasi jumlah item yang dikembalikan oleh $within
.
db.places.find(...).limit(50).sort({created:1})
Sebenarnya, jika Anda mencapai batas tertentu, nilai $within
. Anda perintah umumnya mulai turun. Kode klien Anda mungkin ingin memeriksa apakah Anda mencapai hasil maksimal.