mongodb 的存储过程问题,百思不得其解

[复制链接]
查看11 | 回复2 | 2021-1-27 07:16:22 | 显示全部楼层 |阅读模式
背景:
1、启动认证模式
2、可以定义存储过程
3、可以执行:db.eval(function(x,y){returnx+y},6,2);
问题:
但是对于定义好的存储过程:
db.system.save({_id:"z_add",value:function(x,y){
returnx+y;
}});
db.system.find();结果如下
{
"_id":"z_add",
"value":function(x,y){
returnx+y;
}
}
但是执行db.eval("z_add(1,2)");的时候,却说是没有定义:
WARNING:db.evalisdeprecated
Error:{
"ok":0,
"errmsg":"ReferenceError:z_addisnotdefined:\n_funcs1@:1:24\n",
"code":139
}:

分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:16:22 | 显示全部楼层
db.eval(function,arguments)
Deprecatedsinceversion3.0.
回复

使用道具 举报

千问 | 2021-1-27 07:16:22 | 显示全部楼层
楼上说的不对,deprecate并不表示他没有了。
楼主的错误应该是方法调用不对
db.eval("z_add(1,2)");这样调用找不到,z_addfunction不在作用域内
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行