服務器端腳本

在服務器端能夠經過db.eval函數來執行javascript腳本。javascript

也能夠將javascript保存在數據庫中,而後在別的數據庫中調用。java

  • db.eval

利用db.eval能夠在MongoDB的服務器端執行任意的Javascript腳本。數據庫

這個函數能夠將給定的javascript字符串傳送給MongoDB(在這裏執行),而後返回結果。數組

發送代碼有兩種選擇,或者封裝進一個函數,或者不封裝。如下兩者等價。服務器

db.eval("return 1;")函數

db.eval("function(){return 1;}")spa

只有在傳遞參數的時候,才必需要封裝成函數。ip

參數經過eval的第二個參數傳遞,要寫成一個數組的形式。字符串

如,db.eval("function(u){print("Hello",+u+"!");}",[username])io

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

相關文章
相關標籤/搜索