脚本的解释执行
db.eval(“function() { return 5 + 6; }”)
利用db.eval可以在MongoDB的服务器端执行任意JavaScript脚本。用处有很多,比如事务模拟。
重点要提的就是,如果传入的JavaScript脚本过大会给调试代码很多不便,此时可以将调试信息写入到数据库日志中,方法是在脚本中调用如下语句:
db.eval("print('Hello, world');");
类似存储过程的用法
> db.system.js.insert({_id:"showName2",value:function(){return 456;}})
存储JavaScript就类似于sql数据库当中的存储过程。
可以将JavaScript脚本保存在服务器端,需要的时候可以使用前面提到的db.eval
调用。
> db.system.js.find()
{ "_id" : "showName2", "value" : function cf__1__f_() { return 456; } }
> db.eval("showName2()")
456
存储JavaScript方便实现代码重用。建议要慎用!搞不好会让你的代码逻辑显得很乱很糟糕!