2011-03-25 152 views
16

我有一組文檔,每個文檔都包含存儲在MongoDB集合中的三維空間中的一個點。 MongoDB目前只有雙空間地理空間索引。有沒有一種利用地理空間索引對三維空間數據進行類似查詢的方法?在三維數據中使用MongoDB的地理空間索引

+0

你的意思是代替x你想要x,y,z? – 2011-03-25 17:45:26

+4

+1 - 我甚至都不知道Mongo有沒有地理空間索引。 – 2011-03-25 17:46:20

+0

它有一個用於地理空間的球形和盒子模型,盒子模型對於核心GIS類型沒有那麼有用,但是對於定位應用來說很有趣。 – 2011-03-25 17:49:00

回答

1

你可以通過壓縮其中一個維度來克隆它,但是你會失去一半的精度。

說,如果它們是64個密鑰和你想存儲三個32位的座標: [(X < < 32)+ Y,Z]

的Heck,甚至可以交錯3,並將其存儲在一個關鍵:

XXX

YYY

ZZZ

xyzxyzyz

+1

我認爲這會混淆地理空間索引用於「近」的概念,難道不是嗎? – 2011-03-31 05:07:58

+0

是的,沒有。如果你用最隨機的變量設置被搗毀的維度的低位,你應該沒問題。交織位的第二個技巧非常適合將任意數量的維度排成一個。 – 2011-04-05 00:44:31

+0

我真的不明白這一點。這在MongoDB JavaScript shell代碼中如何實際工作?您能否提供一個如何定義索引和示例查詢的例子?謝謝!另外,你將如何做到這一點:http://stackoverflow.com/questions/6003943/mongodb-find-most-recent-closest-posts-limit-20 – ma11hew28 2011-05-15 03:06:43