¿Debo usar MongoDB para el backend de mi aplicación móvil?

Bueno, hay muchos factores a considerar al elegir el almacén de datos para su aplicación.
MongoDB es una tienda orientada a documentos NOSQL.
La razón principal para optar por las soluciones NOSQL es la alta disponibilidad y el diseño sin esquema. Puede escalar horizontalmente su aplicación fácilmente con MongoDB simplemente agregando más nodos. Además, no necesita un esquema definido al escribir el código de su aplicación. Puede comenzar a escribir código y definir su esquema a medida que codifica, lo que no es el caso de MySQL.

Desde mi experiencia personal, siempre he escuchado a la gente decir que MYSQL es obsoleto, lo cual creo que es una respuesta originada en una mente retrasada y desinformada.

Factor 1:
MongoDB trabaja en escritura una vez que lee muchos principios, acelera la búsqueda de datos ya que los datos se desnormalizan al contrario de sql. En lugar de tener datos normalizados en tablas separadas, tiene datos duplicados en un solo índice. Por lo tanto, esto evita la consulta de unión que escribiría en un sql para obtener datos de varias tablas, pero al mismo tiempo la operación de escritura no sería eficaz porque debe actualizar el valor n número de veces donde n es el número de ocurrencias de un valor particular en su almacén de datos nosql.

Por ejemplo, en una tienda mysql típica, una tabla de productos tendría productos en una tabla separada y documentos para esos productos en una tabla de documentos de manera normalizada, pero en caso de nosql, los datos del documento se agregarían al índice de producto + también en otros indexa donde sea necesario, haciendo que los datos sean redundantes y desnormalizados.

No tener un esquema fijo bien definido puede causarle problemas de consistencia de datos en el último momento, lo que podría ser caótico. Para eso están las claves foráneas en SQL.

Factor 2:
Si su razón para elegir MongoDB es la escalabilidad, puede consultar WebScaleSQL | “Vamos a necesitar una base de datos más grande”
Generalmente en aplicaciones empresariales, los sistemas de persistencia son políglotas, es decir, sistemas híbridos que tienen MySql, Redis, HazelCast, HBASE, ElasticSearch, MongoDB, todos trabajando juntos para fines individuales. Para una búsqueda más rápida, debe ir con una tienda nosql ElasticSearch orientada a documentos en lugar de ejecutarla en MySql. ElasticSearch transmite los datos del almacén de datos principal y los indexa para una recuperación más rápida. No admite transacciones y seguridad. Si necesita datos normalizados, debe evitar la redundancia de datos, vaya a MySql.

Por favor, no escuche a los demás que MySql no funciona y otras cosas locas idiotas. El 80% del rendimiento de su aplicación depende del diseño de su aplicación y consulta. Con un mal diseño, no obtendría el rendimiento incluso del almacén de datos más rápido del planeta. SQL es muy rápido si ha escrito bien el código.

StackOverflow se ejecuta por completo en una actualización distribuida de MySQL StackOverflow: 560 millones de páginas vistas al mes, 25 servidores y todo se trata de rendimiento – Alta escalabilidad –

WebScaleSQL: una colaboración para construir sobre la base de MySQL

Factor 3:
Existen múltiples tipos de almacenamiento de datos NoSql, no solo MongoDB. NoSQL Debe decidir cuál se ajusta a sus necesidades.

Factor 4:
Cuando se trata de madurez y fortaleza de la comunidad, nadie supera a SQL. Independientemente de los errores que encuentre en la producción o en su sandbox local durante el desarrollo, encontrará una solución para ello en la web. Lo que no es el caso con los almacenes de datos NoSQL, son relativamente nuevos y menos maduros.
Tener un almacén de datos NoSQL solo por el hecho de que su próxima generación de db solo aumenta su tiempo de desarrollo en un 30 a 40%
Estoy trabajando en Elasticsearch y digo por experiencia que algunos errores pueden ser un gran obstáculo para usted. Es realmente difícil y lleva mucho tiempo deshacerse de esos errores.

Será fácil encontrar un administrador SQL que un administrador MongoDB.

Hay varios otros factores que aparentemente no recuerdo.

Mi consejo sería hacer una investigación exhaustiva sobre los almacenes de datos SQL y NOSQL y decidir con qué desea ir.

Además, si su código de back-end es PHP, es posible que desee encender el LAMP (paquete de software) 🙂
Aclamaciones.