MongoDB::execute Runs JavaScript code on the database server [deprecated] &reftitle.description; public arrayMongoDB::execute mixedcode arrayargsarray() The eval command, which this method invokes, is deprecated in MongoDB 3.0+. The Mongo database server runs a JavaScript engine. This method allows you to run arbitary JavaScript on the database. This can be useful if you want touch a number of collections lightly, or process some results on the database side to reduce the amount that has to be sent to the client. Running JavaScript in the database takes a write lock, meaning it blocks other operations. Make sure you consider this before running a long script. This is a wrapper for the eval database command. This method is basically: command(array('eval' => $code, 'args' => $args)); } ?> ]]> MongoDB implies a return statement if you have a single statement on a single line. This can cause some unintuitive behavior. For example, this returns "foo": execute('"foo";'); ?> ]]> However, these return &null;: execute('"bar"; "foo";'); // more than one statement $db->execute('db.foo.count( );'); // more than one line ?> ]]> To avoid surprising behavior, it is best not to depend on MongoDB to decide what to return, but to explicitly state a return value. In the examples above, we can change them to: execute('"bar"; return "foo";'); $db->execute('return db.foo.count( );'); ?> ]]> Now the first statement will return "foo" and the second statement will return a count of the "foo" collection. &reftitle.parameters; code MongoCode or string to execute. args Arguments to be passed to code. &reftitle.returnvalues; Returns the result of the evaluation. &reftitle.examples; Simple <function>MongoDB::execute</function> example execute("function() { return 'Hello, world!'; }"); echo $response['retval']; ?> ]]> &example.outputs.similar; Hello, world! Parameter <function>MongoDB::execute</function> example The optional array of parameters will be passed to the JavaScript function. execute("function(greeting, name) { return greeting+', '+name+'!'; }", array("Good bye", "Joe")); echo $response['retval']; ?> ]]> &example.outputs.similar; Good bye, Joe! Scope example If a MongoCode object is used instead of a string for the first parameter, a scope can be passed in which the JavaScript will be executed. "Fred"); $code = new MongoCode($func, $scope); $response = $db->execute($code, array("Goodbye", "Joe")); echo $response['retval']; ?> ]]> &example.outputs.similar; Goodbye, Joe, says Fred &reftitle.seealso; The MongoDB eval command docs &reftitle.changelog; &Version; &Description; 1.7.0 This method has been deprecated as a result of the underlaying eval command being deprecated in MongoDB 3.0+.