[MongoDB] mongosh editor

DataBase 2024. 2. 20. 16:09

 

 

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/

 

Posted by bloodguy
,