2012-09-10 2 views
0
나는 다음을 수행하여 MongoDB를 스크립트로 PARAM을 전달하기 위해 노력하고있어

:테스트 존재

mongo --eval="foo='hello world'" test.js 

을하지만 나는 foo 변수 (즉,이 경우 foo를 사용하여 선택되고 싶어

:이 오류가 발생합니다

if (foo) 
    print(foo) 
    //do stuff with foo 

내가 명령 줄에서 foo는 지정하지 않는 경우 : I 변수의 존재를 테스트 test.js에 있도록, 그렇지 않으면)없이 계속 존재

이것은 일반적으로 일반 JS에서 작동합니다. mongo 용 스크립트에서 이것을 어떻게 수행합니까?

기본적으로 foo 변수를 설정하지 않고 mongo test.js을 계속 수행하고 스크립트를 계속 사용할 수 있기를 원합니다.

답변

5

mongo의 js 런타임은 정의되지 않은 변수에 직접 액세스 할 수 없다는 점에서 node.js와 유사하다고 생각합니다. 이 테스트 방법은 "global.foo"(또는 상황에 따라 "this.foo")를 사용하는 것입니다. foo가 정의되어 있으면 반환하지만 그렇지 않으면 정의되지 않습니다 (오류가 발생하지 않음).).

+0

Perfect. this.foo를 사용하면 필요한 방식으로 작동합니다. 감사. 나는 그 대답을 받아 들일 것입니다. (대답을 받아들이는 데있어 스로틀이 있다는 것을 깨닫지 못했습니다 :)). – dule