假设你有基于java的服务器,并且你正在调用存储在mongo db中的函数: 假设函数名称是test,而impelemntaton是
function(arg1, arg2){
return arg1;
}
DB db;
....
如何正确传递参数?我试过简单的传递它们
db.eval("test(arg1, arg2)", 1, 2);
不幸的是,我收到了错误引用的错误。
答案 0 :(得分:-1)
目前我找不到堆栈跟踪。但我找到了如何绕过这个例外的方法。我刚刚用方法创建了辅助类:
private static String constructCallStatment(String function) {
String functionApi = extractApi(function);
StringBuilder builder = new StringBuilder();
builder.append("function(");
builder.append(functionApi);
builder.append(") { return ");
builder.append(function);
builder.append(";}");
String retVal = builder.toString();
return retVal;
}
public Object eval(String function, Object... args) {
String callStatment = constructCallStatment(function);
return mgDb.eval(callStatment, args);
}
public void setMgDb(DB mgDb) {
this.mgDb = mgDb;
}
它帮助我完全从java端服务器调用mongo db存储函数。