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

11097082 2016-10-31 03:32:51
背景:
1、启动认证模式
2、可以定义存储过程
3、可以执行:db.eval(function(x,y){return x+y},6,2);

问题:
但是对于定义好的存储过程:
db.system.save({_id:"z_add",value:function(x,y){
return x+y;
}});

db.system.find();结果如下
{
"_id" : "z_add",
"value" : function (x,y){
return x+y;
}
}

但是执行db.eval("z_add(1,2)");的时候,却说是没有定义:

WARNING: db.eval is deprecated
Error: {
"ok" : 0,
"errmsg" : "ReferenceError: z_add is not defined :\n_funcs1@:1:24\n",
"code" : 139
} :

...全文
976 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
方丈的寺院 2016-11-13
  • 打赏
  • 举报
回复
楼上说的不对,deprecate 并不表示他没有了。 楼主的错误应该是方法调用不对 db.eval("z_add(1,2)"); 这样调用找不到,z_add function不在作用域内
rucypli 2016-11-03
  • 打赏
  • 举报
回复
db.eval(function, arguments) Deprecated since version 3.0.

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧