Mongodb支持存储过程的使用,存储过程可以接收和输出参数,返回执行存储过程的状态值,也可以嵌套调用。Mongodb的存储过程是使用Javascript编写,并存储在db.system.js表中。我们可以自定义存储过程,然后存入该集合中,具体示例如下:
> db.system.js.save({_id:"addNumbers",value:function(x,y){return x+y;}});
如上面所示:db.system.js.save命令接收2个参数,_id代表存储过程的名字,value代表存储过程的定义。
我们可以对存储过程进行查询、修改和删除,查询使用find()命令:
> db.system.js.find()
{ "_id" : "addNumbers", "value" : function cf__2__f_(x, y) {
return x + y;
} }
在mongodb中,如果需要执行存储过程,则需要使用db.evel('procedureName(param1,param2,……)'); 命令,示例如下:
> db.eval('addNumbers(4,15)');
19
>
除了这种方式之外,我们还可以直接把存储过程的逻辑放在db.eval()参数中直接调用,无需事先声明存储过程的逻辑,如下所示:
示例1:执行存储过程查询posts集合中的文档数目
> db.eval(function(){return db.posts.count();});
6
示例2:把存储过程本身当做参数传递给db.eval()命令
> db.eval(function(x,y) { return addNumbers(x, y); }, 17, 25)
42
关于db.eval()命令详情,参见:
http://www.mongodb.org/display/DOCS/Server-side+Code+Execution
分享到:
相关推荐
window_mongodb执行过程个人笔记——不建议下载.txt Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前...
Docker提供了多种插件方式管理日志,本文就对使用MongoDB存储Docker日志的过程做个记录。 数据流 Docker产生的日期 发送到 FluentD,然后FluentD在转存到MongoDB。 配置Fluentd 前提:操作系统是CentOS7,已安装...
在使用MongoDB做产品原型的过程中,我们总结了MonogDB的一些亮点:使用JSON风格语法,易于掌握和理解:MongoDB使用JSON的变种BSON作为内部存储的格式和语法。针对MongoDB的操作都使用JSON风格语法,客户端提交或接收...
MongoDB的安装配置,已试过正确,安装好后可以直接存储图片、文档等
4.索引创建,游标、存储过程使用 5.聚合运算,支持Group,Aggregation, MapReduce 的统计和集合 6.全文检索和地理位置信息检索使用 7.主从复制搭建 8.sharding分片集群 9.数据库监控和profiling使用 通过这些学习对...
MongoDB C#实例,采用最新mongodb的c#驱动1.8。
MongoDB内置的水平扩展机制提供了从百万到十亿级别的数据量处理能力,完全可以满足Web2.0和移动互联网的数据存储需求,其开箱即用的特性也大大降低了中小型网站的运维成本。对于创业团队,我建议选择MongoDB
MongoDB是python中一种常用的非关系型数据库,我们可以用它来存储一些数据,这里是它的安装的详细过程
4.6 存储过程 4.7 本章小结 第5章 Capped集合 5.1 特性 5.2 使用和约束 5.3 应用 5.3.1 创建 capped collection 5.3.2 限制capped collection中对象个数 5.4 注意事项 5.5 本章小结 第6章 ...
MongoDB数据库:它是一种NoSQL...阅读建议: 此资源以开发简化版 MongoDB 学习其原理和内核,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。
知识图谱是一种结构化的知识表达形式,它以图形的方式组织和存储了大量实体(如人、地点、事件等)及其相互关系。在知识图谱中,实体作为节点,实体之间的各种语义关联则通过边进行连接,形成了一个庞大的数据网络。...
分片(sharding)是指将数据拆分,将其分散存在不同的机器上的过程。有时也用分区(partitioning)来表示这个概念。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以储存更多的数据,处理更多的负载。
由于每个mongodb的文档有16M的大小限制,所以即使你是存储ObjectID也是不够的。我们可以使用很经典的处理方法"父级引用"---用一个文档存储主机,在每个日志文档中保存这个主机的ObjectID。 MongoDB数据库设计全文共...
Mongodb是一个非关系型数据库软件(NoSql),以类似json的形式bson存储数据,bson有二进制的json的意思,官方说bson的效率更高,很适合存储类似于对象的数据,这里权当把自己学习的过程记录下来。 关于MongoDB的安装方法给...
4.6 存储过程 4.7 本章小结 第5章 Capped集合 5.1 特性 5.2 使用和约束 5.3 应用 5.3.1 创建 capped collection 5.3.2 限制capped collection中对象个数 5.4 注意事项 5.5 本章小结 第6章 ...
自行查询相关安装配置,可参考:图文详解Linux系统安装MongoDB4.0过程 3. 数据备份恢复 数据备份: (1)整库备份:mongodump -h {ip} –port 27017 -d {testdb} -o /data/temp 说明:-h 后为数据库所在服务器; –...
该存储库附带一个视频,该视频介绍了使用MongoDB Stitch创建数据终结点API的过程。 在查看随附的视频。 文章 说明如何在10分钟(或更少)内创建API 要求 如果要继续学习,则需要满足以下条件: 免费的帐户。 -...
设置items.py文件,存储要保存的数据类型和字段名称 # -*- coding: utf-8 -*- import scrapy class DoubanItem(scrapy.Item): title = scrapy.Field() # 内容 content = scrapy.Field() # 评分 rating_num = ...
介绍设置MongoDB副本集是一个复杂的过程,需要进行许多配置。 使用mongodb-runrs,您现在可以调用单个命令以在不到60秒的时间内设置N成员副本集。 可以设计副本集,使其不会干扰您可能拥有的任何现有mongod进程。...
分片是指将数据拆分,将其分散存在不同机器上的过程.有时也叫分区.将数据分散在不同的机器上,不需要功能 强大的大型计算机就可以存储更多的数据,处理更大的负载. 使用几乎所有数据库软件都能进行手动分片,应用需要...