MongoDB Native Driver for Node.js Speeds Up Results

 
 
By Jeff Cogswell  |  Posted 2012-05-16
 
 
 

Download the Driver From GitHub

The driver is readily available for download on github, in the mongodb section.

Download the Driver From GitHub

Accessing the Documentation

The link on the driver page takes you to the official documentation, which includes a complete description of the entire API.

Accessing the Documentation

Installing the Driver

Although you can access the driver, readme and docs through github, the driver itself can be installed using the Node.js npm package manager.

Installing the Driver

Timing an Insert

Inserts performed well. More time was spent connecting to the database itself.

Timing an Insert

Handling Errors

When an error occurs, the driver gives back an error object. To inspect this, we simply sent it down to the browser and then pasted the text into the debugger so we could look at it as a JavaScript object.

Handling Errors

The Stack Isnt Much Help

Included with the error object is a full stack trace of the actual exception that occurred. However, this isn't very useful since it only shows the code inside the driver.

The Stack Isnt Much Help

Performing Queries

Performing a database query requires the same approach of passing asynchronous callback functions. You can query on any of the data types as well as regular expressions.

Performing Queries

Querying Without an Index

When querying a database that is not indexed, MongoDB has no choice but to do a linear search through all the records. This is not efficient and as such took several seconds to perform when searching 100,000 records.

Querying Without an Index

Adding an Index

Adding an index in MongoDB is easy using the command prompt. This is only required once; after that, Mongo will continue to maintain the index. Therefore, there wasn't much reason for us to do it programmatically through the driver.

Adding an Index

Querying With an Index

After adding the index, the lookup was shortened dramatically, from four seconds all the way down to about 30 milliseconds.

Querying With an Index

MongoDB Code uses Callbacks

The code for accessing the MongoDB driver requires passing callbacks into the function calls. These callbacks allow for asynchronous operations to occur.

MongoDB Code uses Callbacks

Rocket Fuel