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

गोलांग-एमजीओ में $शाब्दिक उपयोग

पूर्ण होने के लिए, आप वास्तव में यही करने का प्रयास करते हैं:

pipe := DB.C("store").Pipe([]bson.M{
    {"$project": bson.M{"location": bson.M{"type": bson.M{"$literal": "Point"}, "coordinates": []interface{}{"$longitude", "$latitude"}}}},
    {"$match": bson.M{"location": bson.M{"$geoWithin": bson.M{"$centerSphere": []interface{}{"$coordinates", 10 / 6378.11}}}}},
})

समस्या आपके "प्वाइंट" . के साथ नहीं है शाब्दिक, यह महज एक संयोग है। अगर आप इसे "Pt" . में बदलते हैं उदाहरण के लिए, आपको अभी भी ठीक वही त्रुटि संदेश दिखाई देगा।

बिंदु त्रुटि संदेश में $centerSphere<को संदर्भित करता है /कोड> , जो एक केंद्र की अपेक्षा करता है बिंदु और एक त्रिज्या। और जिस तरह से आप "पास" करने की कोशिश करते हैं वह काम नहीं करता है।

यह उदाहरण के लिए काम करता है:

"$centerSphere": []interface{}{[]interface{}{1.0, 2.0}, 10 / 6378.11}

आपकी मूल क्वेरी का कोई मतलब नहीं है, क्योंकि आप उन दस्तावेज़ों को खोजने का प्रयास करते हैं जहां स्थान स्वयं से 10 किलोमीटर के भीतर है , जो सभी दस्तावेजों से मेल खाएगा।

इसके बजाय आप उन दस्तावेज़ों को क्वेरी करना चाहते/चाहते हैं जो विशिष्ट . के 10 किलोमीटर के दायरे में हैं स्थान, और आप इस विशिष्ट स्थान के निर्देशांक $centerSphere . को भेज सकते हैं :

myLong, myLat := 10.0, 20.0

// ...

"$centerSphere": []interface{}{[]interface{}{myLong, myLat}, 10 / 6378.11}

पूरी क्वेरी:

myLong, myLat := 10.0, 20.0
pipe := DB.C("store").Pipe([]bson.M{
    {"$project": bson.M{"location": bson.M{"type": bson.M{"$literal": "Point"}, "coordinates": []interface{}{"$longitude", "$latitude"}}}},
    {"$match": bson.M{"location.coordinates": bson.M{"$geoWithin": bson.M{"$centerSphere": []interface{}{[]interface{}{myLong, myLat}, 10 / 6378.11}}}}},
})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. उल्का/मोंगोडीबी:फॉर्म सबमिट पर स्ट्रिंग के बजाय पूर्णांक डालें

  2. स्ट्रिंग से प्रत्येक गैर utf-8 प्रतीकों को हटाएं

  3. वसंत एमवीसी बाकी प्रतिक्रिया जेसन और एक्सएमएल

  4. स्प्रिंग डेटा मोंगोडब मोंगोडब कनेक्शन बंद नहीं कर रहा है

  5. नई प्रविष्टि को संपादित करने और बनाने के लिए रेल फॉर्म के साथ मोंगोइड में उप-संग्रह तक पहुंचें