使用db.eval()可以在Mongo的服务端执行javascript脚本,然后返回结果
D:\mongodb_64-2.6.4\bin>mongo.exe localhost:27017 MongoDB shell version: 2.6.4 connecting to: localhost:27017/test > db.eval("return 'hello';"); hello > db.eval("return 'hello';"); hello > db.eval("function(){return 'hello';}"); hello
可以传递多个参数,以数组形式
> db.eval("function(name){return 'hello'+name;}",['chenhua']); hellochenhua
> db.eval("function(name,str){return 'hello '+name+''+str;}",['lilei','how are you !!']); hello lilei,how are you !!undefined >
当然这种使用+号的方式是可注入的,需要限定变量的作用域。
另外可以使用db.eval("print('test')") 记录日志用来调试