2011-02-26 23 views
0

開發一個橋樑以便在MongoDB中使用cms我使用存儲鍵,值,類型來管理鏈接到cms的所有值。這些鍵類型值存儲在web.config中以允許可擴展模式。在這種情況下,不允許使用類對象定義來保留動態模式。結果是存儲爲DynamicArray。這產生了一些關於表演和緯度經度的存儲,以使用Query.Near運營商以peform方式檢索。用於存儲GeoSpatial數據的鍵值模式?

DynamicArray 
{ 
    item : { Key: "lat", Value: "12.897", Type:double } 
    item : { Key: "lng", Value: "12.345", Type:double } 
    item : { Key: "country", Value: "USA", Type:String } 
    item : { Key: "state", Value: "CA", Type:String } 
    item : { Key: "city", Value: "San Jose", Type:String } 
    item : { Key: "district", Value: "", Type:String } 
} 

Query.ElemMatch("DynamicArray", Query.And(Query.EQ("Key", "country"), Query.EQ("Value", "USA"))); 

Query.Near ?? 

它是一個與GeoSpatial搜索兼容的模式鍵值?性能?如何在這種模式方式下使用官方驅動程序查詢Query.Near(C#官方驅動程序)?

謝謝。

回答

2

爲了在MongoDB上使用地理空間查詢,您需要將x,y座標存儲爲對象中的前兩個值。有效模式的示例如下:

{ loc: [20,30] } 
{ loc: { x: 20, y: 30 }} 
{ loc: { foo: 20, y: 30}} 
{ loc: { lat : 40.739037, long: 73.992964 } } 

您不能將座標分成多個對象,就像您在上面的示例中所做的那樣。

欲瞭解更多信息:http://www.mongodb.org/display/DOCS/Geospatial+Indexing

相關問題