MongoDBで、サーバ側に関数を永続的に保存しておく方法

サーバ側に関数を保存するには、db.system.jsという特別なコレクションを使います。
> db.system.js.save({_id:'wa', value:function (a,b){return a+b;}});
> exit
bye

(一度ログアウト)

$ ~/bin/mongo

> db.system.js.findOne({_id:"wa"}).value(2,3);
5

(このままだと使いにくいので変数に割り当てる
> var wa = db.system.js.findOne({_id:'wa'}).value
> wa(2,3);
5

関数waがサーバ側で永続的に存在することが確認できました。

なお、db.system.jsはコレクションなので、DBごとに別々に存在します。

参考

カテゴリ: