服务器端脚本

在服务器端可以通过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

 

 

posted on 2013-09-28 12:50  Acor  阅读(281)  评论(0编辑  收藏  举报

导航