MongoDB3.2 ---存储过程

关系型数据库中都有存储过程,那么Mongo中有没有呢?答案是肯定有的
MongoDB的存储过程存储在db.system.js集合中,可以重复调用
格式实例:
  
  
db.system.js.save(
  {
    _id: "echoFunction",          ---存储名称,在每个database中是唯一的
    value : function(x) { return x; }     ---value后的值是存储的定义,x是可接受的参数
  })

db.system.js.save(
  {
    _id : "myAddFunction" ,
    value : function (x, y){ return x + y; }     ---接受参数可以是多个
  });


存储过程可以被查看,修改和删除(使用方法与collection的方法一样)
查看:
>db.system.js.find()
{ "_id" : "echoFunction", "value" : function (x){return x;} }
{ "_id" : "myaddFunction", "value" : function (x,y){return x + y;} }
修改:
> db.system.js.update({_id:'myaddFunction'},{$set:{value:function (x,y){return x*y;}}})     
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

执行存储过程
在mongo shell中可以使用 db.loadServerScripts()   加载当前数据库下system.js中的所有存储过程,
一旦加载之后,就可以直接调用存储使用
测试:
>db.loadServerScripts()
> myaddFunction(2,3)
6
当然存储过程也可以实现非常负责的流程运算,这就需要你把value后面的值填充的更加丰满了
注:之前版本使用db.eval()加载存储的方法,目前版本基本已经不用了(可以用但会有警告提示)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值