从java调用存储的mongodb函数

从java调用存储的mongodb函数,java,mongodb,mongodb-java,Java,Mongodb,Mongodb Java,假设您有基于java的服务器,并且正在调用存储在mongo db中的函数: 假设函数名是test,而implementaton是 function(arg1, arg2){ return arg1; } DB db; .... 如何正确传递参数?我也试过简单的传球 db.eval("test(arg1, arg2)", 1, 2); 不幸的是,我收到错误的引用错误。我当前找不到堆栈跟踪。但我找到了绕过这个例外的方法。我刚刚用方法创建了helper类: private static

假设您有基于java的服务器,并且正在调用存储在mongo db中的函数: 假设函数名是test,而implementaton是

function(arg1, arg2){
    return arg1;
}
DB db;
....
如何正确传递参数?我也试过简单的传球

db.eval("test(arg1, arg2)", 1, 2); 

不幸的是,我收到错误的引用错误。

我当前找不到堆栈跟踪。但我找到了绕过这个例外的方法。我刚刚用方法创建了helper类:

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存储函数。

您能发布您收到的错误吗?如果可能,使用堆栈跟踪。