MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

स्प्रिंग मोंगो टेम्पलेट। भू क्वेरी में क्रमित काम नहीं कर रहा है (नियरक्वेरी)

दुर्भाग्य से, जियोनियर परिणाम संभव नहीं है क्योंकि यह एक कर्सर नहीं लौटाता है और डिफ़ॉल्ट प्रकार बिंदु के साथ दूरी है। आप क्या कर सकते हैं जावा कोड में परिणामों को मैन्युअल रूप से क्रमबद्ध करें। ध्यान दें कि नीचे दिया गया कोड केवल "टाइमस्टैम्प" द्वारा दूरी और क्रमबद्धता को अनदेखा करता है।

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) ;
        }
    });

एक वैकल्पिक तरीका $geoWithin और $centerSphere का उपयोग करना है। चूंकि आप कुछ दूरी (दूरी चर) के साथ परिणाम सीमित कर रहे हैं, यह काम कर सकता है।

    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);

आप यहां $geoWithin और $centerSphere के बारे में अधिक जानकारी प्राप्त कर सकते हैं:

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. WAMP MongoDB - PHP एक्सटेंशन

  2. BinData () में बेस 64 के बजाय हेक्स - MongoDB

  3. एलम मैच सभी डेटा लौटा रहा है जबकि मुझे केवल चयनित डेटा चाहिए

  4. नेवला - संभव परिपत्र निर्भरता?

  5. JSON .NET उप-गुणों के लिए कस्टम नाम समाधानकर्ता