存储过程
关系型数据库的存储过程描述为:一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
mongoDB也有存储过程,但是mongoDB是用javascript来写的,这正是mongoDB的魅力。
保存存储过程
mongodb的存储过程是存放在db.system.js表中,我们先来一个简单的例子:
function add(x,y){ return x+y; }
现在我们将这个存储过程保存到db.system.js的表中:
> db.system.js.save({"_id":"myAdd",value:function add(x,y){ return x+y; }});
其中:_id和value属性是必须的,如果没有_id这个属性,会导致以后无法调用(到目前为止我还没有找到调用的方式方法,如果大家有什么办法,请回复我。)。你可以增加其他的属性来描述这个存储过程。比如:
> db.system.js.save({"_id":"myAdd1",value:function add(x,y){ return x+y; },"discrption":"x is number ,and y is number"});
增加了discrption来描述这个函数。
查询存储过程
可以使用find来查询存储过程,和之前04_MongoDB_查询文档中描述一样例如:
//直接查询所有的存储过程 > db.system.js.find(); { "_id" : "myAdd", "value" : function __cf__13__f__add(x, y) { return x + y; } } { "_id" : "myAdd1", "value" : function __cf__14__f__add(x, y) { return x + y; }, "discrption" : "x is number ,and y is number" } { "_id" : ObjectId("5343686ba6a21def9951af1c"), "value" : function __cf__15__f__ add(x, y) { return x + y; } } //查询_id为myAdd1的存储过程 > db.system.js.find({"_id":"myAdd1"}); { "_id" : "myAdd1", "value" : function __cf__16__f__add(x, y) { return x + y; }, "discrption" : "x is number ,and y is number" } >
执行存储过程
保存好的存储是如何执行的呢?
这里有个牛逼的函数,eval;如果对js了解的人肯定知道这个eval。用来执行一段字符串(描述的比较肤浅,呵呵),在mongodb中使用db.eval("函数名(参数1,参数2...)"),来执行存储过程(函数名找的是_id):
> db.eval('myAdd(1,2)'); 3
eval会找到对应_id属性执行存储过程。
db.eval()是一个比较奇怪的东西,我们可以将存储过程的逻辑直接在里面并同时调用,而无需事先声明存储过程的逻辑。
> db.eval(function(){return 3+3;}); 6
相关推荐
在本压缩包“mongodb_READ-AND-WRITE.rar”中,我们关注的是如何读取文件内容并将其存储到MongoDB数据库中。在这个过程中,首先需要确保MongoDB服务端已经启动。 1. MongoDB基础概念: - 文档型数据库:MongoDB以...
5. **php_mongodb.pdb**:这是一个程序数据库文件,用于在开发和调试过程中存储有关程序的符号信息。在运行时,它可以帮助调试器定位错误和异常,但通常在生产环境中并不需要。 综上所述,这个压缩包提供的是一个...
9. GridFS:当单个文档大小超过16MB时,MongoDB使用GridFS来存储大文件,将它们分割成多个小块进行存储。 10. 应用开发:讨论如何在Java或其他编程语言中使用MongoDB的驱动程序进行应用开发,包括连接数据库、执行...
MongoDB是一款NoSQL数据库,它采用灵活的数据模型,支持JSON格式的文档存储,具有强大的查询能力。其主要特点包括: 1. 高性能:MongoDB使用内存映射技术,数据读写速度快。 2. 高可用性:通过复制集实现数据备份和...
2. **MongoDB**: MongoDB是一个基于分布式文件存储的NoSQL数据库系统,它使用JSON-like文档作为数据结构,支持灵活查询、高可用性和可扩展性。 3. **MongoDB Atlas**: MongoDB Atlas是MongoDB的云数据库服务,提供...
window_mongodb执行过程个人笔记——不建议下载.txt Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前...
MongoDB的优势在于它的灵活性和弹性,可以方便地存储复杂的数据结构,如JSON文档,这对于快速响应和处理动态数据场景非常有利。 与此同时,MySQL作为广泛使用的SQL数据库,用于存储结构化数据,如用户信息、角色...
- **Storing Data**:此章节重点介绍如何在 MongoDB 中存储数据。这包括基本的文档存储方式、最佳实践以及如何有效地组织数据来满足应用需求。 - **Indexes in Mongo**:索引是提高查询性能的关键。本节涵盖如何创建...
SpringBoot是Java开发的一个轻量级框架,它简化了Spring应用程序的创建和配置过程,而MongoDB则是一种流行的NoSQL数据库系统,以其文档型数据模型和高性能而著称。接下来,我们将深入探讨如何将这两个技术进行整合。...
PHP的MongoDB扩展提供了一套接口,使得开发者可以轻松地在PHP应用中存储、检索、操作和管理MongoDB的数据。 压缩包内的文件: 1. `CREDITS` - 这个文件通常包含项目的所有贡献者和他们的贡献记录,是开源项目中常见...
标题 "koa-mongo_node+mongoDB实现登录_loadh2h_koamongo_MongoDB_源码.zip" 提供的信息表明,这是一个关于使用Koa框架和MongoDB数据库在Node.js环境中实现用户登录功能的源码示例。在这个项目中,开发者可能已经...
- **面向文件的存储方式**:MongoDB将数据存储为BSON格式的文档,便于管理和查询。 - **高性能**:得益于其存储方式和查询优化,MongoDB能够高效处理大量数据。 - **高可用性**:通过副本集(replica sets)和分片...
MongoDB是一个开源的NoSQL数据库,它使用JSON样式的文档存储数据,支持多种数据结构,如字符串、数字、数组、嵌套对象等,非常适合处理非结构化和半结构化数据。在工业4.0场景下,这使得MongoDB能够高效地存储和管理...
MongoDB 的设计目标是提供高性能、高可用性和易于扩展性,它采用了JSON(JavaScript Object Notation)样式的文档结构,使得数据模型更接近于应用程序的数据模型,简化了开发过程。 MongoDBNotesForProfessionals_...
- 在MQTT消息监听器中,接收到的数据通常需要进行处理和解析,然后存储到MongoDB。这可能涉及JSON解析、数据验证、业务逻辑处理等步骤。 - 使用Spring框架的工具,如`@Service`和`@Autowired`,可以方便地将数据...
例如,如果经常需要查询某个字段的数据,那么将其存储在一个嵌入式文档中可能更为合适。 **4. 使用合适的索引策略** 索引是优化查询性能的关键。合理地创建索引可以极大地加快查询速度。了解何时以及如何创建索引...
作为一个文档数据库,MongoDB存储数据的方式类似于JSON(JavaScript Object Notation)文档,这种数据模型允许数据以键值对的形式自由结构化,使得数据的存储和查询更为便捷。 在MongoDB中,数据被组织成集合...
6. **加密和安全性**:备份数据在传输和存储过程中都可进行加密,确保数据的安全性和隐私。 7. **合规性报告**:NetBackup提供详细的备份和恢复报告,帮助用户满足审计和合规性要求。 8. **云集成**:NetBackup...
8. **安全性**:NetBackup 采用加密技术保护备份数据,确保即使在传输和存储过程中数据也受到保护。 9. **资源优化**:通过智能调度和负载均衡,NetBackup可以有效利用硬件资源,避免备份过程对生产系统的影响。 ...
2. **无缝集成**:NetBackup与MongoDB的紧密集成使得备份过程无需复杂的配置,可以通过NetBackup管理控制台直接操作MongoDB实例。 3. **高效备份与恢复**:利用MongoDB的备份API,NetBackup能实现快速且无阻塞的...