Docs Menu
Docs Home
/
MongoDB Manual

Server-side JavaScript

On this page

  • Running .js files via a mongosh Instance on the Server
  • Disable Server-Side Execution of JavaScript
  • Behavior

Important

Server-side JavaScript Deprecated

Starting in MongoDB 8.0, server-side JavaScript functions ($accumulator, $function, $where) are deprecated. MongoDB logs a warning when you run these functions.

Map-reduce is deprecated starting in MongoDB 5.0.

MongoDB provides the following commands, methods, and operator that perform server-side execution of JavaScript code:

  • mapReduce and the corresponding mongosh method db.collection.mapReduce(). For more information, see Map-Reduce.

  • $where operator that evaluates a JavaScript expression or a function in order to query for documents.

  • $accumulator and $function aggregation operations that allows users to define custom aggregation expressions.

You can also specify a JavaScript file to mongosh to run on the server. For more information, see Running .js files via a mongosh Instance on the Server

Note

JavaScript in MongoDB

Although these methods use JavaScript, most interactions with MongoDB do not use JavaScript but use an idiomatic driver in the language of the interacting application.

If you do not need to perform server-side execution of JavaScript code, see Disable Server-Side Execution of JavaScript.

Note

If you are using SELinux, any MongoDB operation that requires server-side JavaScript will result in segfault errors. Disable Server-Side Execution of JavaScript describes how to disable execution of server-side JavaScript.

You can specify a JavaScript (.js) file to mongosh to execute the file on the server. This is a good technique for performing batch administrative work. When you run mongosh on the server, connecting via the localhost interface, the connection is fast with low latency.

You can disable all server-side execution of JavaScript:

Refer to the individual method or operator documentation for any concurrency information. See also the concurrency table.

MongoDB 6.0 upgrades the internal JavaScript engine used for server-side JavaScript, $accumulator, $function, and $where expressions and from MozJS-60 to MozJS-91. Several deprecated, non-standard array and string functions that existed in MozJS-60 are removed in MozJS-91.

For the complete list of removed array and string functions, see the 6.0 compatibility notes.

Next

What is MongoDB?