Geojson 형식이 엄격하게 필요하지 않습니다;!. 인덱스가 몽고에서 아무 키나 가능, 그래서 할 수 있습니다 단순히 인덱스 latDegrees 및 lonDegrees 키 플러스 geojson 형식은 장황하고 db 크기를 늘릴 것입니다. 약 1 년 동안 작업했기 때문에 매핑에 문제가 없었습니다.
다양하고 멋진 $ near를 사용하려면 Geojson이 필요합니다. $ geo-spatial queries 또는 $ geoNear aggregation 이내. 그러나 사용법을 계획하지 않으면 imho를 괴롭히지 마십시오.
이제 관찰 된 이벤트가 많아서 Morphia와 함께 MongoDB에 저장하고 싶습니다. 당신이 당신의 latDegrees에서 지리적 데이터를 변환해야하는 경우 그래서 인덱스 컬렉션 등
때, 예상 geojson 형식으로 lonDegrees 형식이를 실행할 수있는 '위치'은 GeoJson 포인트로 저장한다 쉘 스크립트. 이는 일회성 작업으로 가장 좋습니다. 컬렉션은 DB 내에서 '테이블'의 이름입니다
db.COLLECTION.find().forEach(function(doc) {
// Create a geojson point using the lon and lat found in each doc.
var location = {"type":"Point", "coordinates":[doc.lonDegrees, doc.latDegrees};
printjson ("Location is " + location);
// update the collection with geojson doc and unset the old one
db.COLLECTION.update({"_id":doc._id},{$set:{"loc":location}, $unset : {"lonDegrees", "latDegrees"} });
})
- .
- geojson은 lon, lat 시퀀스 대 일반적인 lat, lon 규칙의 데이터가 필요합니다.
주의하십시오. 위의 스크립트는 geojson을 설정하고 단 한 번의 작업으로 이전 형식을 설정 해제합니다. 업데이트를 항상 새로운 컬렉션에서 insert ---로 바꾸면 언제든지 새 컬렉션을 만들 수 있습니다. 다음은 귀하의 데이터를 유지하고 동일한 DB에 새로운 컬렉션을 만듭니다.
db.NEW_COLLECTION_NAME.insert(doc};
db.NEW_COLLECTION_NAME.update({"_id":doc._id},{$set:{"loc":location}, $unset : {"lonDegrees", "latDegrees"} });
mongo 셸을 사용하여 명령 줄에서 스크립트를 실행하십시오.내가 핵심 문제와 함께 당신을 도울 수 없습니다
mongo DATABASE filename.js
는, 그럼에도 불구하고, 나는 반응성 또는 악성 몽고 드라이버에 BSON 핸들러에 초점을 제안 - 개인 코드 연장에 반대했다. 그 청소부와 다른 사람들은 당신의 일을 사용할 수 있습니다. 예는 일반적인 문제이며 Mongo 드라이버에 있어야합니다.
즉. 이 스칼라 sample을 보면 사용법이나 BSONDocument를 볼 수 있습니다. 2 플로트 배열을 필요한 geojson 형식으로 직렬화/마샬링하는 BSONLatLonDocument를 만들 수 있습니다.
그냥 간단한 포인트, 내가 작업의 유형을 달성하기 위해 중포 기지와 플러그인 GeoFire를 사용하여 입력 포인트와 함께 유지 될 포인트를 생성하는 모르핀의 GeoJson 클래스를 사용할 수 있습니다. Firebase에서 기본 계획을 수립하고 서버에서 원하는 모든 것을 관리하십시오. 그것 좀 봐! –
GeoJson 포인트의 구조를 반영하도록 LatLon 클래스를 변경하지 않는 이유는 무엇입니까? – pintxo