MongoDB 셸에서 별칭 정의하기
MongoDB 셸(mongo shell)은 JavaScript 기반으로 동작하기 때문에, JavaScript의 Object.defineProperty() 메서드를 활용하면 특정 구문이나 함수에 별칭(alias)을 정의할 수 있습니다. 이를 통해 반복적으로 사용하는 명령어나 긴 쿼리를 더 짧고 편리하게 호출할 수 있습니다.
별칭 정의 기본 문법
별칭을 정의하려면 아래와 같은 문법을 사용합니다.
Object.defineProperty(this, 'yourFunctionName', {
get: function() {
yourStatement1,
.
.
return N
},
enumerable: true,
configurable: true
});여기서 get 접근자(accessor) 안에 원하는 실행문을 작성하면, 해당 이름으로 호출될 때마다 정의된 로직이 실행되고 그 결과값이 반환됩니다.
var 키워드로 변수에 할당하기
정의한 별칭을 변수에 담아 사용하려면 다음과 같이 var 키워드를 이용합니다.
var anyAliasName = yourFunctionName;
실제 구현 예제
이제 위 문법을 실제로 적용해 보겠습니다. 여기서는 'displayMessageDemo'라는 이름의 별칭을 정의합니다.
> Object.defineProperty(this, 'displayMessageDemo', {
... get: function() {
... return "Hello MongoDB"
... },
... enumerable: true,
... configurable: true
... });함수를 변수에 할당하는 쿼리
정의한 별칭을 MongoDB 셸에서 var 변수에 할당하는 쿼리는 다음과 같습니다.
> var myMessage = displayMessageDemo;
별칭 값 출력하기
위에서 정의한 별칭의 값을 출력해 보겠습니다.
> myMessage;
실행 결과는 다음과 같습니다.
Hello MongoDB
정리
이처럼 MongoDB 셸에서는 Object.defineProperty()의 getter를 이용해 별칭을 정의하고, var로 변수에 할당하여 간편하게 재사용할 수 있습니다. 자주 사용하는 집계 파이프라인이나 복잡한 쿼리를 별칭으로 만들어 두면 작업 효율을 크게 높일 수 있습니다.