`
zc985552943
  • 浏览: 291038 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11870
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:27149
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:16011
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:27239
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13679
社区版块
存档分类
最新评论

06_MongoDB_存储过程

阅读更多

存储过程

关系型数据库的存储过程描述为:一组为了完成特定功能的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

 

 

1
1
分享到:
评论

相关推荐

    mongodb_READ-AND-WRITE.rar_MongoDB_mongodb读取

    在本压缩包“mongodb_READ-AND-WRITE.rar”中,我们关注的是如何读取文件内容并将其存储到MongoDB数据库中。在这个过程中,首先需要确保MongoDB服务端已经启动。 1. MongoDB基础概念: - 文档型数据库:MongoDB以...

    php_mongodb-1.5.5-7.2-ts-vc15-x64.zip

    5. **php_mongodb.pdb**:这是一个程序数据库文件,用于在开发和调试过程中存储有关程序的符号信息。在运行时,它可以帮助调试器定位错误和异常,但通常在生产环境中并不需要。 综上所述,这个压缩包提供的是一个...

    MongoDB_two_MongoDB_

    9. GridFS:当单个文档大小超过16MB时,MongoDB使用GridFS来存储大文件,将它们分割成多个小块进行存储。 10. 应用开发:讨论如何在Java或其他编程语言中使用MongoDB的驱动程序进行应用开发,包括连接数据库、执行...

    同步Mongodb数据库.zip_MongoDB_Mongodb 同步数据库

    MongoDB是一款NoSQL数据库,它采用灵活的数据模型,支持JSON格式的文档存储,具有强大的查询能力。其主要特点包括: 1. 高性能:MongoDB使用内存映射技术,数据读写速度快。 2. 高可用性:通过复制集实现数据备份和...

    Python库 | sumologic_mongodb_atlas-1.0.6-py3-none-any.whl

    2. **MongoDB**: MongoDB是一个基于分布式文件存储的NoSQL数据库系统,它使用JSON-like文档作为数据结构,支持灵活查询、高可用性和可扩展性。 3. **MongoDB Atlas**: MongoDB Atlas是MongoDB的云数据库服务,提供...

    window_mongodb执行过程个人笔记——不建议下载.txt

    window_mongodb执行过程个人笔记——不建议下载.txt Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前...

    CAC_SpringBoot_MongoDB.rar

    MongoDB的优势在于它的灵活性和弹性,可以方便地存储复杂的数据结构,如JSON文档,这对于快速响应和处理动态数据场景非常有利。 与此同时,MySQL作为广泛使用的SQL数据库,用于存储结构化数据,如用户信息、角色...

    mongodb-docs-2011-01-29_mongodb最新用户手册

    - **Storing Data**:此章节重点介绍如何在 MongoDB 中存储数据。这包括基本的文档存储方式、最佳实践以及如何有效地组织数据来满足应用需求。 - **Indexes in Mongo**:索引是提高查询性能的关键。本节涵盖如何创建...

    springboot_demo1_springbootmongodb_springboot_MongoDB_

    SpringBoot是Java开发的一个轻量级框架,它简化了Spring应用程序的创建和配置过程,而MongoDB则是一种流行的NoSQL数据库系统,以其文档型数据模型和高性能而著称。接下来,我们将深入探讨如何将这两个技术进行整合。...

    php_mongodb-1.2.9-7.1-nts-vc14-x64.zip

    PHP的MongoDB扩展提供了一套接口,使得开发者可以轻松地在PHP应用中存储、检索、操作和管理MongoDB的数据。 压缩包内的文件: 1. `CREDITS` - 这个文件通常包含项目的所有贡献者和他们的贡献记录,是开源项目中常见...

    koa-mongo_node+mongoDB实现登录_loadh2h_koamongo_MongoDB_源码.zip

    标题 "koa-mongo_node+mongoDB实现登录_loadh2h_koamongo_MongoDB_源码.zip" 提供的信息表明,这是一个关于使用Koa框架和MongoDB数据库在Node.js环境中实现用户登录功能的源码示例。在这个项目中,开发者可能已经...

    2021Java字节跳动面试题——面向字节_MongoDB.pdf

    - **面向文件的存储方式**:MongoDB将数据存储为BSON格式的文档,便于管理和查询。 - **高性能**:得益于其存储方式和查询优化,MongoDB能够高效处理大量数据。 - **高可用性**:通过副本集(replica sets)和分片...

    I4TP_mongodb-master_Industry4.0_solidqze_turnkeyplatform_

    MongoDB是一个开源的NoSQL数据库,它使用JSON样式的文档存储数据,支持多种数据结构,如字符串、数字、数组、嵌套对象等,非常适合处理非结构化和半结构化数据。在工业4.0场景下,这使得MongoDB能够高效地存储和管理...

    MongoDBNotesForProfessionals_MongoDB_mongodbbook_zip.zip

    MongoDB 的设计目标是提供高性能、高可用性和易于扩展性,它采用了JSON(JavaScript Object Notation)样式的文档结构,使得数据模型更接近于应用程序的数据模型,简化了开发过程。 MongoDBNotesForProfessionals_...

    SpringBoot_MongoDB_MQTT基本环境搭建

    - 在MQTT消息监听器中,接收到的数据通常需要进行处理和解析,然后存储到MongoDB。这可能涉及JSON解析、数据验证、业务逻辑处理等步骤。 - 使用Spring框架的工具,如`@Service`和`@Autowired`,可以方便地将数据...

    50_tips_and_tricks_for_mongodb_developers.pdf

    例如,如果经常需要查询某个字段的数据,那么将其存储在一个嵌入式文档中可能更为合适。 **4. 使用合适的索引策略** 索引是优化查询性能的关键。合理地创建索引可以极大地加快查询速度。了解何时以及如何创建索引...

    MongoDBNotesForProfessionals_MongoDB_mongodbbook_zip_源码.rar

    作为一个文档数据库,MongoDB存储数据的方式类似于JSON(JavaScript Object Notation)文档,这种数据模型允许数据以键值对的形式自由结构化,使得数据的存储和查询更为便捷。 在MongoDB中,数据被组织成集合...

    NetBackup10_AdminGuide_MongoDB.pdf

    6. **加密和安全性**:备份数据在传输和存储过程中都可进行加密,确保数据的安全性和隐私。 7. **合规性报告**:NetBackup提供详细的备份和恢复报告,帮助用户满足审计和合规性要求。 8. **云集成**:NetBackup...

    NetBackup83_MongoDB_Guide.pdf

    8. **安全性**:NetBackup 采用加密技术保护备份数据,确保即使在传输和存储过程中数据也受到保护。 9. **资源优化**:通过智能调度和负载均衡,NetBackup可以有效利用硬件资源,避免备份过程对生产系统的影响。 ...

    NetBackup101_AdminGuide_MongoDB.pdf

    2. **无缝集成**:NetBackup与MongoDB的紧密集成使得备份过程无需复杂的配置,可以通过NetBackup管理控制台直接操作MongoDB实例。 3. **高效备份与恢复**:利用MongoDB的备份API,NetBackup能实现快速且无阻塞的...

Global site tag (gtag.js) - Google Analytics