服务器端脚本
在服务器端可以通过db.eval函数来执行javascript脚本。
也可以将javascript保存在数据库中,然后在别的数据库中调用。
- db.eval
利用db.eval可以在MongoDB的服务器端执行任意的Javascript脚本。
这个函数可以将给定的javascript字符串传送给MongoDB(在这里执行),然后返回结果。
发送代码有两种选择,或者封装进一个函数,或者不封装。以下二者等价。
db.eval("return 1;")
db.eval("function(){return 1;}")
只有在传递参数的时候,才必须要封装成函数。
参数通过eval的第二个参数传递,要写成一个数组的形式。
如,db.eval("function(u){print("Hello",+u+"!");}",[username])
db.eval("function(x,y,x){return x+y+z;}",[num1,num2,num3])
- 存储javascript
每个MongoDB的数据库中都有个特殊的集合,叫做system.js。用来存放Javascript变量。
这些变量可以在任何MongoDB的javascript上下文中调用。
用insert 就可以将变量加入到system.js中。
如,db.system.js.insert({"_id":"x","value":1})
db.system.js.insert({"_id":"y","value":2})
db.system.js.insert({"_id":"z","value":3})
现在对其求和,
db.eval("return x+y+z;")
6