mongosh는 라인 단위 콘솔인데 MongoDB를 쓰다 보면 큰 데이터라든가 여러 라인으로 편집하는게 필요할 때가 있음.
이럴 때 쓸 수 있도록 mongosh에선 외부 에디터와 내장 에디터를 지원함.
외부 에디터
설정
// mongosh에서 일회성으로 설정하거나 .mongoshrc.js 같은데서 매번 설정하거나, 환경변수 EDITOR로 지정하거나 방법은 다양함
// mongosh나 .mongoshrc.js에서 vi를 외부 에디터로 설정
config.set("editor", "vi")
// bash나 zsh에서 환경변수로 지정
export EDITOR=vi
// vs code 같은 것도 지정 가능
config.set("editor", "/usr/local/bin/code --wait")
// unset은 null로 할당
config.set("editor", null)
사용
// mongosh에서 edit 라고 입력하면 에디터가 열리면서 새로운 에디팅 세션이 시작됨
edit
// 뭔가 입력하고 저장하고 나오면 mongosh에 해당 내용이 입력되어 있고 엔터키를 누르면 실행됨
// 한 번 더 edit를 실행하면 직전에 열려있던 세션이 그대로 열림
// namespace에 이미 할당된 변수가 있다면 edit 인자값으로 넣으면 해당 변수 수정 가능
// 이런 변수가 있다면
var my_var = [];
// 이렇게 해당 변수를 수정하는 에디팅 세션을 열 수 있음
edit my_var
// 표현식 등도 가능. 이렇게 에디터를 실행하면 해당 내용이 입력된 상태로 에디팅 가능. 중간 내용 채우고 저장하고 나오면 mongosh에 입력되어 있어 엔터키 누르면 실행.
edit db.my_col.insertOne({})
내장 에디터
사용
// 실행
.editor
// 이렇게 입력하면 내장 에디터가 실행됨.
// 원하는 내용을 쭉쭉 입력한 후 ctrl + D 를 입력하면 즉시 실행, ctrl + C 를 입력하면 취소
// 한 번 내려간 커서를 다시 올린다거나 그런 에디팅은 안되지만 tab을 통해 자동완성을 사용할 수 있다는 장점이 있음
// 그리고 내장 에디터에서 선언된 변수는 에디터가 종료되어도 전역 스코프에 그대로 남아있으므로 주의
[참고]
https://www.mongodb.com/docs/mongodb-shell/reference/editor-mode/
'DataBase' 카테고리의 다른 글
[MongoDB] oplog 분석 (0) | 2024.05.29 |
---|---|
[MongoDB] mongosh에서 JavaScript 사용하기 (0) | 2024.02.27 |
[MongoDB] .mongoshrc.js (0) | 2024.02.19 |
[MongoDB] Schema Validation (스키마 유효성 검사) (0) | 2023.07.19 |
[MongoDB] collection에 해당하는 chunk 리스트 가져오기 (get chunks list from config.chunks) (0) | 2023.07.13 |