Konum prodüksiyonunda bir geospacial endeksine sahip bir mağaza koleksiyonum var.MongoDB Bağımlı Sorgular: Milan radyanı nasıl dönüştürebilirim?
Kullanmaya çalıştığım şey, kullanıcının enlemi, enlemi ve bir arama yarıçapı (mi) verildiği zaman, bu parametrelerdeki mağazaların listesini döndürmek istiyorum.
Aşağıdaki örnek MongoDB belgelerinde (http://www.mongodb.org/display/DOCS/Geospatial+Indexing) gördüm, ancak mesafenin radyan cinsinden olduğu anlaşılıyor.
center = [50, 50]
radius = 10
db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
Peki, milleri radyanlara dönüştürme formülü nedir? mongodb kullanıcıda
Çözüm müthiş insanlar beni cevap bulmak yardımcı oldu. Temel olarak, gerçekten aradığım şey mesafeyi sınırlamanın bir yoluydu.
Başına güncel belgeleme, sorguya yakın $ 'a bir 3 parametre vardır: Ayrıca maksimum mesafe
db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 } }).limit(20)
$ maxDistance değeri radyan cinsinden olduğu ile yakın $ kullanabilirsiniz; öyleyse, mesafemi mil olarak aldım ve 69'a böldüm.
Teşekkür ederiz! docs gibi
Ben mongdb kullanıcı Google Grubu ile ilgili sorumu yayınlayarak Cevabımı bulabildim (http://groups.google.com/group/mongodb-user/browse_thread/iplik/d37c781bbfff5f08). – Abe
Not: 69'a bölerek, radyan değil, milden * derece *, kaba bir dönüşümdür. Dereceler burada doğru, çünkü bu bir düz ol ''$ near' sorgusu (yani, $ maxDistance'ın koordinatlarla aynı birimlerde olması gerektiği anlamına gelir), küresel bir sorgu değil (* yapmak * $ maxDistance' gerektirir) radyanda olmak). –