MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Menyortir hasil MongoDB GeoNear dengan sesuatu selain jarak?

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:

  1. membatasi hasil $near
  2. 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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Grup Agregasi Mongodb menurut logika atau?

  2. MongoDB $keInt

  3. Bagaimana cara mendapatkan data ReferenceField di mongoengine?

  4. Bagaimana cara menyebarkan gambar Docker mongoDB ke Elastic Beanstalk?

  5. Bagaimana cara menjalankan kueri asli MongoDB (JSON) hanya menggunakan driver mongo-java?