2011-02-26 2 views
0

MongoDB에서 cms를 사용하기위한 브리지 개발 저장소 키, 값, 유형을 사용하여 CMS에 연결된 모든 값을 관리합니다. 이러한 키 유형 값은 web.config에 저장되어 확장 가능한 스키마를 허용합니다. 이 경우 클래스 정의를 사용하여 동적 스키마를 보존 할 수 없습니다. 결과는 DynamicArray와 같은 저장 공간입니다. 이것은 수행자에 대한 일부 doubs를 생성하고 위도 경도를 저장하여 Query.Near 연산자를 사용하여 검색합니다.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