Can I group floating point numbers by range in MongoDB? -


मेरे पास इस तरह के दस्तावेजों के साथ एक MongoDB सेट है

  {"_id": ObjectId ("544ced7b9f40841ab8afec4e"), "मापन": {"को 2": 38, "आर्द्रता": 90}, "शहर": "एंटवर्प", "डेटम": आईएसओडीएटी ("2014-10-01 टी 23: 13: 00.000Z" ), "बाइकइड": 26, "जीपीएस": {"अक्षांश": 51.20711593206187, "रेखांश": 4.424424413969158}}  

अब मैं उन्हें तिथि और स्थान के आधार पर एकत्र करने का प्रयास करता हूं परिणाम के माप का औसत अब तक मेरा कोड इस तरह दिखता है:

  db.stadsfietsen.aggregate ([{$ match: {"measurement.Co2": {$ gt: 0}}}, {$ group: { _id: {hour: {$ hour: "$ datum"}, स्थान: {लंबी: "$ GPS.Longitude", Lat: "$ GPS.Latitude"}}, औसत: {$ औसत: "$ मापन। Co2" }}}, {$ Sort: {"_id": 1}}, {$ out: "Co2"}]);  

मुझे इस रूप में सभी संभावित संयोजनों और जीपीएस निर्देशांक की एक अच्छी सूची दी गई है:

  {"_id": {"hour "": 0, "स्थान": {"लंबा": 3.424424413969158, "लाट": 51.20711593206187}}, "औसत": 82}  

समस्या यह है कि बहुत सारे अद्वितीय निर्देशांक हैं , कि यह उपयोगी नहीं है।

क्या मैं दस्तावेज़ों को एक साथ समूह में जोड़ सकता हूँ जब मूल्य एक साथ मिलकर होते हैं? 51.207 से रेखांकित 51.20 9 से कहो? "post-text" itemprop = "text">

$ समूह में श्रेणियों के लिए कोई मानक समर्थन नहीं है

गणितीय

आप एक नया मान की गणना कर सकते हैं जो कई भौगोलिक स्थिति के लिए समान होगा। उदाहरण के लिए आप यह कर सकते हैं:

  _id: {hour: {$ hour: "$ datum"}, स्थान: {लांग: $ जीपीएस। लघरीकरण - आधुनिक ($ जीपीएस। लांघ, 0.01) Lat: $ GPS.Latitude - mod ($ GPS.Latitude, 0.01)}}  

भूस्थानिक अनुक्रमण

आप को पुन: फिर किसी भी श्रेणी के सभी स्थानों पर खोज और खोज करने के लिए आवेदन करें। यदि यह लागू होता है तो आपके उपयोग के मामले में बहुत अधिक निर्भर होता है।

नक्शा-कमी

एकत्रीकरण ढांचे से कहीं अधिक शक्तिशाली है। आप निश्चित रूप से अपनी गणना करने के लिए इसका उपयोग कर सकते हैं, लेकिन यह अधिक जटिल है और इसलिए मैं आपको एक और घंटे बिताने के बिना एक तैयार समाधान प्रदान नहीं कर सकता।


Comments