位置: 编程技术 - 正文

mongodb eval 执行服务器端脚本(mongo --eval)

编辑:rootadmin

推荐整理分享mongodb eval 执行服务器端脚本(mongo --eval),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb执行语句300s超时,mongodb foreach,mongodb foreach,mongo --eval,mongodb foreach,mongodb执行js,mongodb执行命令,mongo --eval,内容如对您有帮助,希望把文章链接给更多的朋友!

在服务器端可以通过db.eval函数来执行javascript脚本,也可以把javascript脚本保存在数据库中,然后在别的数据库命令中调用.

一、db.eval 执行服务器端脚本

利用db.eval函数可以在MongoDB服务器端执行javascript脚本.这个函数先将给定的javascript字符串传递给MongoDB服务器,在服务器上执行,然后返回结果.db.eval可以用来模拟多文档事务:db.eval锁住数据库,然后执行javascript,再解锁.虽然没有内置的回滚机制,但这能确保一系列操作按照指定的数序发生.发送代码有两种方式,封装一个函数或者不封装,如:

只有传递参数的时候,才必须要封装成一个函数.参数通过db.eval的第二个参数传递,要写成一个数组的形式.如:

若db.eval的表达式要是复杂的话,调试的办法是将调试信息写进数据库的日志中如:

这样在日志里就能找到hello refactor

二、存储javascript

每个MongoDB的数据库中都有个特殊的集合:system.js,用来存放javascript变量.这些变量可以在任何MongoDB的javascript上下文中调用,包括"$where"子句,db.eval调用,MapReduce作业.用insert可以将变量存在system.js中如:

mongodb eval 执行服务器端脚本(mongo --eval)

上例在全局作用域中定义了x,y,z,对其求和:

db.eval("return x+y+z;") system.js可以存放javascript代码,这样就可以很方便的自定义一些脚本,如用javascript写一个日志函数,将其存放在system.js中:

调用:

使用存储的javascript缺点是代码会与常规的源代码控制脱离,会弄乱客户端发送来的javascript.最适合使用存储javascript的情况就是程序中有个地方都要用到一个javascript函数,这样要是更新的话,只需更新这个函数而不必没出都修改.要是javascript代码很长又要繁琐使用的话,也可以使用存储javascript,这样一次会节省不少传输时间.

三、安全性

执行javascript代码就要考虑MongoDB的安全性.如:

如果username是用户自定义的,可以使用这样的字符串"');db.dropDatabase();print('",代码就变成了这样:

为了避免这种情况,要限定作用域.绝大多数驱动程序都为传递给数据库的代码提供了一种特殊类型,这是因为代码实际上可以看成是一个字符串和一个作用域的组合.作用域是一个保存着变量名和值映射关系的文档.当javascript函数执行的时候,这种映射就构成了函数的局部作用域.

浅谈mongodb中query查询 Mongodb最大的功能之一就是它支持动态查询,就跟传统的关系型数据库查询一样,但是它的查询来的更灵活。一、QueryExpressionObjects:查询表达式对象查询

MongoDB教程之索引介绍 一、索引基础:MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令:db.test.ensureIndex({"username"

MongoDB教程之聚合(count、distinct和group) 1.count:--在空集合中,count返回的数量为0。db.test.count()0--测试插入一个文档后count的返回值。db.test.insert({"test":1})db.test.count()1db.test.insert({"test":2})db.test.co

标签: mongo --eval

本文链接地址:https://www.jiuchutong.com/biancheng/312713.html 转载请保留说明!

上一篇:MongoDB中连接字符串的编写(mongodb连接数)

下一篇:浅谈mongodb中query查询(mongodb reference)

  • 转让非独占许可使用权
  • 支付的运输费用计入什么科目
  • 购税盘需要什么东西
  • 党建经费可以用来干什么
  • 网上申报中月平均工资怎么计算
  • 个人取得哪项收入需要缴纳个人所得税
  • 视同销售销售额的确定方法
  • 资产证券化会计准则
  • 存货毁损计入
  • 企业征地补偿支出需要什么凭据做账?
  • 收到供应商发票的会计处理怎么做?
  • 运输发票的税率分类
  • 吊装费用税率
  • 图书免税政策依据
  • 互联网税务行动计划五大板块
  • 一卡通充值计入什么费
  • 以销定产 以产定销
  • 应交税金负数如何调整
  • 关于购买专业书籍的请示
  • 城市地下建设
  • mac 双系统如何调整系统空间
  • 或有事项基本确定
  • win10怎么关掉
  • 如何使用定向流量
  • linux 查看文件内容 转换字符编码
  • 利息收入结转时怎么做账
  • alibabapritect
  • linux动态扩容
  • 销售使用过的机器设备如何缴纳增值税
  • 驼鹿穿过莫兰山了吗
  • 年底社保怎么交
  • twig教程
  • 微信小程序反编译2023
  • php输出数字
  • 培训公司要交哪些税
  • php读取mysql
  • 持有至到期投资账务处理
  • php 微信公众号自定义菜单
  • chmod命令用于更改文件或目录的所有者
  • ps怎么把多余的p掉
  • 应付职工薪酬中社保费怎么记账
  • 银行存款向灾区捐款
  • 普通发票可以抵扣进项吗
  • python字典遍历key
  • 织梦收费5800的解决方法
  • 企业分配股权
  • 可变现净值属于会计计量属性吗
  • 企业所得税季度申报表季度平均值
  • 视同销售收入是纳税调整项目吗?
  • 暂估入账后续处理
  • 私募基金公司收入高吗
  • 委托加工业务的财务职责
  • 母公司代子公司收款,子公司开具发票
  • 社保扣费不成功会再次扣费吗
  • 职工食堂的费用可以在差额里扣除吗
  • 销售部门交通费计入什么费用
  • 航天金税盘维护费发票在哪打印
  • 以现金支付办公用品费440元
  • 停车费专用发票
  • 个人境外投资限制
  • 借款利息怎么记账
  • MySql 5.6.36 64位绿色版安装图文教程
  • ubuntu 编译安装
  • blg是什么文件
  • win8安装界面
  • Ubuntu14.04 的 SSH 无密码登录的设置方法
  • 关于linux操作系统的描述中
  • win7使用临时配置文件登录
  • 网页使用的字体中最具可读性.最易浏览的是
  • jquery实现
  • 简述android应用的常用开发模式及其优缺点
  • 可以在windows环境下双击而直接放映
  • 批处理 判断文件是否存在
  • python import怎么用
  • unity随机生成一个物体
  • 辽宁省电子税务局电话
  • 南京退林还耕
  • 国家级运动员怎么申请
  • 税务总局在贯彻落实意见任务分工中
  • 从国外网购东西回来要交税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设