$near
का उपयोग करने का कोई सीधा तरीका नहीं है या $nearSphere
और किसी अन्य फ़ील्ड द्वारा क्रमबद्ध करें, क्योंकि ये दोनों ऑपरेटर पहले से ही find()
. करने के परिणामों को सॉर्ट करते हैं . जब आप 'तारीख' के आधार पर फिर से छाँटते हैं, तो आप परिणामों को फिर से छाँट रहे होते हैं। हालांकि, आप $nearSphere
. से परिणाम प्राप्त कर सकते हैं वृद्धिशील रूप से, और परिणामों के प्रत्येक सेट को क्रमबद्ध करें। उदाहरण के लिए:
function sortByDate(a, b) { return a.date - b.date; }
// how many results to grab at a time
var itersize = 10;
// this will hold your final, two-way sorted results
var sorted_results = new Array();
for (var i=0, last=db.coll.count(); i<last-itersize; i+=itersize) {
var results = db.coll.find( {"date":{$gte:date},
// longitude, then latitude
"location":[lng, lat]} ).skip(i).limit(itersize).toArray();
// do date sorting app-side for each group of nearSphere-sorted results
sorted_results = sorted_results.concat( results.sort(sortByDate) );
}
आपको मोंगोडब प्रश्नों में भू-स्थानिक निर्देशांक निर्दिष्ट करने के क्रम के बारे में भी पता होना चाहिए। MongoDB geojson का उपयोग करता है spec, जो X, Y, Z क्रम (यानी, देशांतर, अक्षांश) में निर्देशांक करता है।