A diferencia de MySQL, MongoDB es un gestor de bases de datos orientado a documentos que, por lo tanto, tiene un enfoque completamente diferente en cuanto al almacenamiento de datos. Sin embargo, su estructura base muestra similitudes, como por ejemplo:
- En lugar de tablas, los datos se almacenan en carpetas (collections).
- Los documentos en formato BSON sustituyen a las líneas, definiendo campos en las columnas de las tablas SQL.
- Estos campos consisten siempre en un par de una clave, que representa al mismo tiempo el nombre del campo, y un valor. Este valor puede representar una cifra, una palabra o un texto, pero también una lista completa de palabras o cifras e incluso un archivo completo.
- Un documento MongoDB es, de esta forma, una colección de pares clave/valor, como lo son, en principio, las filas en las tablas de MySQL.
La diferencia fundamental es que, mientras que todas las filas de una tabla de MySQL tienen la misma estructura, en MongoDB los documentos no están sujetos a un orden fijo. Las filas en MySQL tienen el mismo número de valores, cada uno con los mismos tipos de datos. Por su parte, en MongoDB los documentos individuales tienen su propia estructura. De esta manera, es posible crear nuevos campos concualquier valor, mientras que para una base de datos relacional como MySQL, se necesita una reestructuración completa. Aunque con MongoDB la clave debe ser única dentro de un documento, es posible que esta aparezca en otros documentos, algo que no es posible en las bases de datos MySQL y debe ser regulado por medio de relaciones (joins) entre las diferentes tablas, que en MongoDB pueden, opcionalmente, ser creadas en forma de documentos incorporados o referencias.
Otra diferencia fundamental que resulta de la comparativa entre MongoDB vs. MySQL es el enfoque dado a la recuperación de datos. Como base de datos NoSQL, MongoDB no utiliza SQL como lenguaje de consulta, disponiendo de su propio idioma para el procesamiento de datos. Esto permite la comunicación entre MongoDB y el respectivo cliente. Para este fin, la base de datos utiliza los métodos específicos del correspondiente lenguaje de programación del cliente, valiéndose de la ayuda de los llamados drivers (librerías), que pueden ser descargados por separado en su página web oficial.
Adicionalmente, como es común para las bases de datos para documentos, es posible realizar consultas complejas mediante el modelo de programación MapReduce.