如何使用Java MongoDriver执行MongoDB js脚本

Tha*_*nga 6 java mongodb

我使用这个例子在Mongodb服务器中实现了一个JavaScript函数.

当我使用mongo shell时它工作正常,但我想从Java程序内部运行它.这是代码:

public String runFunction() {

    CommandResult commandResult1 = db.command("db.loadServerScripts()");
    CommandResult commandResult2 = db.command("echoFunction(3)");

    return commandResult2.toString();
}
Run Code Online (Sandbox Code Playgroud)

我不明白结果.

Pro*_* Mo 6

先前的答案在MongoDB 3.4+中不起作用。在3.4版及更高版本中执行此操作的正确方法是创建BasicDBObject,并将其用作Database.runCommand()的参数。这是一个例子。

final BasicDBObject command = new BasicDBObject();
            command.put("eval", String.format("function() { %s return;}}, {entity_id : 1, value : 1, type : 1}).forEach(someFun); }", code));
            Document result = database.runCommand(command);
Run Code Online (Sandbox Code Playgroud)


Jim*_*Jim 2

您应该使用 DB.eval(),请参阅api 文档并确保您不进行字符串连接。相反,传递变量。

我认为您的答案可能与StackOverflow 上的另一个答案相同。