Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Jupyter notebook
- console.log
- MacOS
- pip jupyter
- query
- python3
- mongodb nodejs driver
- Node.js
- collection.find
- mongodb
- Windows10
- 맥에 파이썬 설치
- nodejs mongodb
- 파이썬3
- Projection
- mongoDB [Object]
- mongo-native
- node.js 연동
- MYSQL
- [Object]
- Installation
- node.js설치
- util.inspect
- homebrew
- 맥
Archives
- Today
- Total
Bon Voyage
MongoError: Can't extract geo keys 에러 해결하기 본문
좌표에 "2dsphere" 인덱스를 만드려 했는데 에러가 난다.
collection.createIndex({dcenter:"2dsphere"}, function(err, result){
if (err){
console.error("에러났다!! \n",err);
//
} else {
console.log("성공");
}
});
에러 내용은 아래와 같았다.
{ MongoError: Can't extract geo keys:
...
can't project geometry into spherical CRS: [ 37.543433, 126.951544 ]
좌표를 추출할 수 없다는 말인데,
왜냐하면 GeoJson 객체 타입에서는 경도, 위도의 순서대로 좌표를 갖기 때문이다.
(참고 : https://nangkyeong.tistory.com/entry/MongoDB에서의-Geospatial-Data )
경도, 위도 순서로 문서의 좌표 값을 바꾸자.
이미 저장된 위도, 경도 순의 좌표를 어떻게 경도, 위도 순으로 바꿔야 할까?
//몽고에 접속한 후 좌표가 있는 db로 들어간다. (여기서는 udg)
use udg
//udgmap 컬렉션의 dcenter에 좌표가 있으므로,
//모든 document를 찾아서, forEach로 순서를 바꿔주자.
db.udgmap.find().forEach(function (d) {
// 각 document의 decnter에 값을 다시 대입
d.dcenter = [
d.dcenter[1], // 1번지의 경도가 앞에 오게 함
d.dcenter[0] // 0번지의 위도는 뒤로
];
db.udgmap.save(d); //저장
});
위 코드는 여기를 참고했다 ( https://stackoverflow.com/a/30140085 )
그리고 나서 다시 실행하니 성공했음.
'문제 해결' 카테고리의 다른 글
Node.js의 MongoDB 쿼리 결과가 [object]로 나올 때 (0) | 2019.07.18 |
---|
Comments