千家信息网

集算器协助MongoDB计算之数位比较

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Mongodb脚本解决复杂问题的计算能力有限,直接使用时较为吃力。很多情况下需要将数据读出后在主程序中进一步完成运算,而在Java等高级语言中编写这类集合式运算也比较麻烦。这时可以用集算器esProc
千家信息网最后更新 2026年11月01日集算器协助MongoDB计算之数位比较

Mongodb脚本解决复杂问题的计算能力有限,直接使用时较为吃力。很多情况下需要将数据读出后在主程序中进一步完成运算,而在Java等高级语言中编写这类集合式运算也比较麻烦。这时可以用集算器esProc来辅助,这里通过一个例子来说明。

Mongodb中有一个test集合如下:

>db.test.find({},{"_id":0})

{"value" : NumberLong(112937552) }

{"value" : NumberLong(715634640) }

{"value" : NumberLong(487229712) }

{"value" : NumberLong(79198330) }

{"value" : NumberLong(440998943) }

{"value" : NumberLong(93148782) }

{"value" : NumberLong(553008873) }

{"value" : NumberLong(336369168) }

{"value" : NumberLong(369669461) }

…

具体的:test集合包含多个value,每个value是一个数字串。每个数字串都要和另外所有的数字串比较,找出每个数字串的最大相同数和最大不同数。如果第1行和第n行都含有数字1,就算相同数有1个,如果第1行有1第n行没有,就算不同数有1个。

集算器代码如下:

A1:连接mongodb,ip和端口号是localhost:27017,数据库是test,用户名和密码都是test。

A2:使用find函数从mongodb中取数,形成游标。集合是test,过滤条件是空,键_id不取出。可以看出,esProc在find函数中采用了和mongdb的find语句一样的参数格式。esProc的游标支持分批读取和处理数据,可以避免数据量过大,内存出现溢出的情况。这里因为数据量不大,所以用fetch出游标的所有记录。

A3:在A2的基础上增加两列,用来存放最大相同数和最大不同数。同时把value转成字符串。

A4:针对A3集合循环,循环体是B4到D10。

B4:取当前循环的value。

C4:利用函数将value分拆成单个字符组成的序列,去掉重复的值。

B5:对A3再进行一次内层循环。循环体是C6到D10。

C5:如果内层循环的循环位置和外层当前位置的相等,也就是说是同一个value的话,就跳过本次内层循环,进行下一次内层循环。

C6:取得内层循环的value。

C7:定义两个变量same和diff,分别存放本次比较的相同数和不同数,初始值为0。

C8:利用循环函数,在内层循环的value中逐个查找外层循环的value分拆的序列数值。如果能找到,则same自加1,否则diff自加1。

C9、C10:将same和diff和A4中的same和diff比较,将较大的重新赋值给A4中的same和diff。

运行结果是:

需要说明的是:esProc并不包含mongodb的java驱动包。用esProc来访问mongodb,必须提前将mongodb的java驱动包(要求2.12.2或以上版,如mongo-java-driver-2.12.2.jar)放到[esProc安装目录]\common\jdbc中。

集算器esProc协助mongodb计算的脚本很容易集成到java中,只要增加一行A11,写成result A3即可向java输出resultset形式的结果,具体的代码参考esProc教程。同样,用java调用esProc访问mongodb也必须将mongdb的java驱动包放到java程序的classpath中。




循环 内层 数字 数据 不同 最大 相同 函数 驱动 代码 位置 外层 字符 序列 循环体 情况 游标 结果 脚本 运算 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 华服互联网科技靠谱吗 南京欣网互联网络科技有限公司 互联网科技公司简介 与互联网科技公司 互联网 的科技创新 苏州互联网科技贷款公司 赫美联合互联网科技 中国互联网金融科技基金 互联网金融监管科技 四个字互联网科技公司取名 广州慧亚互联网科技怎么样 天津腾达互联网科技有限公司 上海钢联属于互联网科技股吗 互联网科技包装股 昆明中奇联合互联网科技 吉林省码上互联网科技电话 容联科技互联网电商 第三届互联网大会安防黑科技 北京品多多互联网科技有限公司 互联网金融监管科技数据 互联网科技与金融科技 互联网金融科技创新 长亮科技 互联网金融 金融科技和互联网金融 哈尔滨新华互联网科技 烟台灵鸽互联网科技有限公司 合肥互联网科技公司公章图片 河南商务圈互联网科技有限公司 中国主要互联网科技公司
0