Geonames의 정보가 담긴 Access 2010 데이터베이스가 있습니다. 테이블 이름은 cities입니다. 단순화를 위해 열은 "이름", "위도", "경도", "loc"입니다. "long"과 "latitude"를 하나의 필드에 결합하여 MongoDB의 지형 공간 인덱스를 사용할 수 있도록 "loc"을 만들었습니다. 사이에 쉼표로 두 개의 10 진수 값을 결합하므로 "loc"열을 문자열 형식으로 저장해야했습니다.Geonames 및 MongoDB : 지형 공간 인덱스를 사용하기 위해 Access 2010을 MongoDB로 내보내기
이 표를 CSV로 내보낼 때 "경도"와 "위도"를 건너 뛰고 결합 된 "위치"필드가 새로 생겼습니다. 나는 "도시"모음으로 MongoImport를 실행 한 후
"geonameid", "name", "loc"
1, "Sweden", "18.068287,59.336341"
의 LOC 필드가 같은 인용 부호로 포용 : 여기에서
{ "_id" : ObjectId("50a9ed157db1bcfe22cddd0a"), "geonameid" : 20, "name" : "Sweden", "loc" : "18.068287,59.336341", }
내가 명령을 실행
csv로는 같다 "loc"을 배열로 바꾼다. I에 유래 여기에 또 다른 기여에 다음 명령 감사를 사용
db.cities.find({ 'loc' : {$type : 2 } }).forEach(function (x) { x.loc = new Array(x.loc); db.cities.save(x); });
결과는 다음과 같습니다 내 GPS는 "LOC"필드에 좌표에서
{ "_id" : ObjectId("50a9ed157db1bcfe22cddd0a"), "geonameid" : 20, "name" : "Sweden", "loc" : [ "18.068287,59.336341" ], }
어떻게 인용 부호를 제거 할 수 있습니까? 자바에서 코드를 작성할 수없고 MongoDB가이 작업을 수행하기를 기다리지 않아도됩니다. "경도"와 "위도"필드가 포함 된 CSV를 내보내고 MongoDB의 새로운 "loc"필드에 결합하면 효과적이지 않을지라도 상관 없습니다. geospatial 인덱스로 작업하는 "loc"필드를 가져와야합니다.
JSON에 대해 동의하며 테스트 .json 문서를 만들고 "loc"가져 오기를 정상적으로 수행했습니다. 불행히도 연결된 cmd 도구에 깨진 AWS S3 링크가 있습니다. 게시자에게 트위터를 썼는데 잘하면 연계 된 링크를 제공 할 수 있습니다. – Karl
답변을 '수락'으로 표시하는 것을 잊지 마세요. – oyatek