¿Cómo ejecuto un script MongoDB js usando Java MongoDriver?

He implementado una función de JavaScript dentro del servidor Mongodb usando este ejemplo .

Funciona bien cuando uso mongo shell, pero quiero ejecutarlo desde un programa Java. Este es el código:

public String runFunction() {

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

    return commandResult2.toString();
}

No entiendo el resultado.

Respuesta 1

Debería usar DB.eval (), ver los documentos de la API y asegurarse de no hacer la concatenación de cadenas. Pase las variables en su lugar.

Creo que su respuesta es probablemente la misma respuesta que esta otra en StackOverflow.

Respuesta: 2

Las respuestas anteriores no funcionan en MongoDB 3.4+. La forma correcta de hacer esto en la versión 3.4 y superiores es crear un BasicDBObject y usarlo como parámetro de Database.runCommand (). Aquí hay un ejemplo.

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);
Respuesta: 3

Estoy usando interceptores cxf personalizados para registrar solicitudes / respuestas para llamadas de servicio y me gustaría registrar el tiempo que tardó la llamada junto con la respuesta. ¿Hay alguna forma de hacer esto?

Tengo un proyecto para que la escuela analice el código web y lo use como una base de datos. Cuando intenté bajar los datos de (https://www.marathonbet.com/en/betting/Football/), ¿no lo obtuve todo? Aquí está mi código: ...

¿Es seguro llamar a escribir en objeto Java FileOutputStream desde múltiples hilos? ¿La salida se serializará correctamente? aclaración: en mi caso, el registrador de clase contiene una referencia FileOutputStream, ...

Para mi aplicación, tuve que escribir un método personalizado de "línea de lectura" ya que quería detectar y preservar las terminaciones de nueva línea en un archivo de texto ASCII. El método Java readLine () no dice qué nueva línea ...