在服務器端能夠經過db.eval函數來執行javascript腳本。javascript
也能夠將javascript保存在數據庫中,而後在別的數據庫中調用。java
利用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])
每一個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