mongoでJavascript実行時にrequire的なことがしたい時のメモ
mongoを実行してやるとシェルのような対話的な感じでJavaScriptのコードが実行できる。
また、JavaScriptのファイルを入力にして実行するすることもできる。
# mongo MongoDB shell version: 1.8.3 connecting to: test > print("hoge") hoge > bye # cat test.js print("hogehoge") # mongo --quiet test2.js hogehoge #
しかしここでJavascirptで他のファイルをインポートするrequire文を入れると怒られてしまう。
# mongo MongoDB shell version: 1.8.3 connecting to: test > require("test.js") Tue Feb 7 00:30:53 ReferenceError: require is not defined (shell):1
requireなんて無いぞと言われる。そんな馬鹿な。
なんか色々調べていると、mongoDBはspidermonkeyと言うエンジンで動いているらしく、
spidermonkeyで外部ファイルを読み込むには以下のようloadを呼べばいけるとのこと。
# mongo MongoDB shell version: 1.8.3 connecting to: test > load("test.js") true
同じJavaScriptでも処理系によって微妙に書き方が違うのね。
Javaに漬かってとこのあたりの感覚に違和感を感じてしまう。