Estoy construyendo una nueva aplicación y diseñando ahora su estructura, aquí hay algunas ideas sobre por qué usar o no la mangosta:
- Mongoose será más lento (para aplicaciones grandes)
- Mangosta es más difícil con consultas más complicadas
- Habrá situaciones en las que desee más velocidad y elegirá ir sin mangosta, entonces tendrá mitad consultas con mangosta y mitad sin mangosta. Esa es una situación loca, una vez tuve ...
- Mongoose te hará codificar más rápido con aplicaciones simples con una estructura de base de datos simple
- Mongoose te hará leer documentos de mongodb Y documentos de mongoose
- Con la mangosta, su pila obtendrá una cosa más de la que depender y es una posibilidad más de colapsar y reducirse a cenizas.
El controlador mongodb es un controlador sin formato, se comunica directamente con mongodb. la mangosta es la capa de abstracción. Obtiene E / S más fácil a la base de datos mientras que su estructura de base de datos es lo suficientemente simple.
La abstracción trae sus requisitos y tienes que seguirlos. Su aplicación será más lenta, consumirá más RAM y será más complicada, pero si sabe cómo usarla, puede escribir objetos simples más rápido y guardarlos en la base de datos.
Sin mangosta, tendrá una aplicación más rápida con conexión directa a mongodb. Nadie dice que no puede escribir sus propios modelos para guardar cosas en db. Usted puede. Y creo que es más fácil. Escribes código, que usarás, sabes lo que necesitas. Tu capa de abstracción será mucho más pequeña que la de la mangosta.
Vengo del mundo PHP, allí teníamos sql sin procesar con funciones mysql_ depreciadas, luego obtuvimos PDO - capa de abstracción orientada a objetos para comunicarnos con sql. O puede elegir un ORM pesado como Doctrine para tener cosas similares a mongoose en mongoDB. Objetos con método setter / getters / save y así sucesivamente. Eso está bien, pero al agregar más abstracción, está agregando más archivos, más lógica, más documentación, más dependencias. Me gusta mantener las cosas simples y tener menos dependencias en mi pila. Por cierto, esa fue la razón por la que pasé de PHP a Javascript servidor-cliente en primer lugar.
Con mangosta, creo que es genial escribir algunas aplicaciones simples, que tienen una estructura de base de datos simple similar a SQL . Cuando empiezas a tener subdocumentos y quieres hacer todas esas consultas locas, me resulta muy difícil con la mangosta. Tienes que mirar los documentos de mongodb, luego mirar los documentos de mongoose para saber cómo hacer la consulta que deseas. A veces encontrará que X future of mongodb no está en mongoose, por lo que baja al controlador mongodb sin procesar y escribe consultas mongodb sin procesar en uno u otro lugar. Sin mangosta, miras los documentos de mongodb y haces tu consulta.