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

Mongo Musim Semi Template. Sortir tidak berfungsi dalam kueri geografis (NearQuery)

Sayangnya, tidak mungkin mengurutkan hasil geoNear karena tidak mengembalikan kursor dan pengurutan default adalah jarak dengan titik. Yang dapat Anda lakukan adalah mengurutkan hasil secara manual dalam kode Java. Perhatikan bahwa kode di bawah ini mengabaikan jarak dan hanya mengurutkan berdasarkan "timeStamp".

List<GeoResult<Person>> results = geoPoints.getContent();
Collections.sort(results, new Comparator<GeoResult<Person>>() {
    @Override
    public int compare(GeoResult<Person> o1, GeoResult<Person> o2) {
        return o1.getContent().getTimeStamp() == 2.getContent().getTimeStamp() ? 0 : 
                (o1.getContent().getTimeStamp() > o2.getContent().getTimeStamp() ? 1 : -1) ;
        }
    });

Pendekatan alternatif adalah menggunakan $geoWithin dan $centerSphere. Karena Anda membatasi hasil dengan beberapa jarak (variabel jarak), itu bisa berhasil.

    Query query = Query.query(Criteria.where("coords").withinSphere(new Circle(p, new Distance(distance, Metrics.KILOMETERS).getNormalizedValue())));
    query.with(new Sort(Direction.DESC, "timeStamp"));
    Criteria criteria = new Criteria();
    criteria.and("type").is("MeasurementPoint");
    query.addCriteria(criteria);

    List<Person> geoPoints = mongoTemplate.find(query, MeasurementPoint.class);

Anda dapat menemukan informasi lebih lanjut tentang $geoWithin dan $centerSphere di sini:

http://docs.mongodb.org/manual/reference/operator/geoWithin/

http://docs.mongodb.org/manual/reference/operator/centerSphere/




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara masuk ke file riwayat shell Mongo atau semua riwayat di Windows

  2. Cara Menyebarkan Server Percona untuk MongoDB untuk Ketersediaan Tinggi

  3. Bagaimana cara memeriksa apakah indeks sedang digunakan?

  4. Menyebarkan Aplikasi Meteor ke server sendiri

  5. $strLenBytes vs $strLenCP di MongoDB:Apa Bedanya?