2011-03-25 11 views
16

Her biri MongoDB koleksiyonunda saklanan 3-boşlukta bir nokta içeren bir belge setim var. MongoDB şu anda sadece 2-alan için Geospatial Indexes var. 3-uzay verisine benzer sorgulamalar yapmak için Geospacial Endeksinden yararlanmanın bir yolu var mı?MongoDB'nin Geospacial dizinini 3d verilerle kullanma

+0

Yani x yerine x, y, z? –

+4

+1 - Mongo'nun bir Geospatial Index'i olduğunu bile bilmiyordum .. –

+0

Coğrafi mekân için küresel ve kutu modeli var, kutu modeli sert çekirdek CBS türleri için kullanışlı değil, konum uygulamaları için de eğlenceli . –

cevap

1

Boyutlardan birini sıkıştırarak kana çekebilirsiniz, ancak kesinliğinizin yarısını kaybedersiniz. bunlar 64 bit anahtar ve üç 32 bit depolamak istediği

ki koordinatları: [+ y, z (< < 32 x)]

Heck, hatta üç harmanlayabilir ve bir saklayın anahtar:

xxx

yyy

zzz

xyzxyzyz

+1

Bence bu, Geospacial indeksinin kullanıldığı “yakın” kavramını berbat ederdi, değil mi? –

+0

Evet ve hayır. En fazla rastgele olan değişkenle parçalanmış boyutun düşük bitlerini ayarlarsanız iyi olmalısınız. Ayırma parçalarının ikinci hilesi, sayıları aşağıya doğru bir sayıya sığdırmak için harika çalışır. –

+0

Bunu gerçekten anlamıyorum. Bu aslında MongoDB JavaScript kabuk kodunda nasıl çalışır? Dizini ve örnek sorguyu nasıl tanımlayacağınıza dair bir örnek verebilir misiniz? Teşekkürler! Ayrıca, bunu nasıl yaparsınız: http://stackoverflow.com/questions/6003943/mongodb-find-most-recent-closest-posts-limit-20 – ma11hew28