Mongodb存储过程使用
2015-10-21 16:35
483 查看
Mongodb支持存储过程的使用,存储过程可以接收和输出参数跟sql中的存储过程概念类似,返回执行存储过程的状态值,可以嵌套调用。Mongodb的存储过程是使用Javascript编写,并存储在db.system.js表中。我们可以自定义存储过程,然后存入该集合中,具体示例如下:
Shell代码
如上面所示:db.system.js.save命令接收2个参数,_id代表存储过程的名字,value代表存储过程的定义。
我们可以对存储过程进行查询、修改和删除,查询使用find()命令:
Shell代码
在mongodb中,如果需要执行存储过程,则需要使用db.evel(‘procedureName(param1,param2,……)’); 命令,示例如下:
Shell代码
除了这种方式之外,我们还可以直接把存储过程的逻辑放在db.eval()参数中直接调用,无需事先声明存储过程的逻辑,如下所示:
示例1:执行存储过程查询posts集合中的文档数目
Shell代码
示例2:把存储过程本身当做参数传递给db.eval()命令
Shell代码
> db.system.js.save({_id:"addNumbers",value:function(x,y){return x+y;}}); WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : "addNumbers" })
如上面所示:db.system.js.save命令接收2个参数,_id代表存储过程的名字,value代表存储过程的定义。
我们可以对存储过程进行查询、修改和删除,查询使用find()命令:
Shell代码
> db.system.js.find(); { "_id" : "addNumbers", "value" : function (x,y){return x+y;} }
在mongodb中,如果需要执行存储过程,则需要使用db.evel(‘procedureName(param1,param2,……)’); 命令,示例如下:
Shell代码
> db.eval("addNumbers(3,8)") 11
除了这种方式之外,我们还可以直接把存储过程的逻辑放在db.eval()参数中直接调用,无需事先声明存储过程的逻辑,如下所示:
示例1:执行存储过程查询posts集合中的文档数目
Shell代码
> db.eval(function(){return db.posts.count();}) 0
示例2:把存储过程本身当做参数传递给db.eval()命令
> db.eval(function(x,y) { return addNumbers(x, y); }, 17, 25) 42
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- 分享微信开发Html5轻游戏中的几个坑
- Android学习笔记(二九):嵌入浏览器
- android wifi 无线调试
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- 如何在 Fedora 上安装 MongoDB 服务器
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- JavaScript演示排序算法
- [Android]在代码里运行另一个程序的方法
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- javascript实现10进制转为N进制数
- 如何在 Ubuntu 上安装 MongoDB
- Linux Shell常用技巧
- 肯特·贝克:改变人生的代码整理魔法
- Shell 脚本编程陷阱
- 2019年开发人员应该学习的8个JavaScript框架