开发一个桥梁以使用MongoDB的cms我使用存储键,值,类型来管理链接到cms的所有值。这些键,类型值存储在web.config
中以允许可扩展的模式。在这种情况下,不允许类对象定义来保留动态模式。结果是存储为DynamicArray。这产生了一些关于执行和存储纬度经度的数据,以便使用Query.Near
运算符以形式检索。
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#官方驱动程序)?
感谢。
答案 0 :(得分: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