从java调用存储的mongodb函数

时间:2014-05-22 16:26:48

标签: java mongodb mongodb-java

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

function(arg1, arg2){
    return arg1;
}
DB db;
....

如何正确传递参数?我试过简单的传递它们

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

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

1 个答案:

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