位置: 编程技术 - 正文

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)

  • 印花税处罚适用征管法吗
  • 买房契税如何计算
  • 城建税和教育费附加可以税前扣除吗
  • 无形资产加计扣除最新政策
  • 收到补价时应确认收益,支付补价时不能确认收益
  • 汇算清缴亏损在后期弥补时怎么做会计处理?
  • 应付税费包括
  • 一般纳税人税控维护费怎么填报
  • 增值税专用发票和普通发票的区别
  • 所得税多交但又不想去税务局退税怎样做账?
  • 简易征收是什么意思和一般纳税人
  • 非居民企业啥意思
  • 企业内部控制审计报告应当与内部控制评价报告
  • 车间设备折旧计入哪个科目
  • 冲红发票金额大怎么办
  • 资产负债表里面应付账款怎么算
  • 企业资产类科目的是
  • 公司必须购买税控设备吗
  • 在会计上主营业务利润和营业利润有什么区别?
  • 集团公司收取管理费是否可以税前列支
  • 两地取得工资个税怎么交
  • 出租车收税吗
  • 财务期初期末
  • 旅游开发公司税率
  • 会计中如何区分借方和贷方
  • 哪些费用发票可以报销
  • 被收购企业会提出什么条件
  • 酒店损益类科目包括哪些
  • 材料费可抵扣进项税计算
  • vue super
  • css去掉项目符号
  • 成本法下长期股权投资的处置
  • 农业公司经营项目有哪些?
  • uniapp怎么引入elementui
  • 量子退火算法入门6
  • css字体设置渐变色
  • thinkphp框架设计原理
  • pico实例
  • sudo权限是什么意思
  • 无偿划转法律意见
  • 织梦前台数据不能存入中文
  • 库房食品过期报告怎么写
  • 无偿提供建筑服务账务处理
  • 企业开户行信息是什么意思
  • 计提制造费用
  • 收到单位借款如何入账
  • 员工多交个税企业就少交所得税吗?
  • 公司与公司之间合作协议
  • 装修付款分期
  • 商业劳务费是什么意思
  • 从个人处借款的会计分录
  • 非流动资产基金借贷方表示
  • 做无票收入如何报税
  • 开票金额大于付款金额 多余部分为返点
  • 学校固定资产账记法
  • 跨年度固定资产转为在建工程怎么计算
  • 卖蒸汽的增值税是多少
  • 账簿设计要以()为前提
  • 关于职工住房补贴相关文件及规定
  • mysql性能分析语句
  • mysql二进制安装教程
  • mysql innodb缓存
  • WIN7系统如何设置自动关机
  • ubuntu20.10
  • reader_sl.exe - reader_sl进程有什么用.
  • 如何修改注册表值
  • 升级win10怎么激活
  • linux如何查看防火墙配置
  • 如何清楚windows搜索记录
  • linux安装步骤
  • jquery插件怎么用到自己的网站
  • nodejs实战教程
  • js 获取图片大小
  • 批处理重命名文件名
  • 用python定义一个函数
  • jquery操作表单
  • 税务局监察室主任职位说明书
  • 掌上海关怎么查询
  • 集体土地征收应该有哪些文件
  • 二手房交易契税减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设