FerretDB (previamente MangoDB) es una tecnología open-source que actúa como un proxy y que convierte las consultas del protocolo MongoDB (6.0+) a SQL y se las pasa al motor PostgreSQL como lleva embebido motor de base de datos.
FerretDB es compatible con los controladores de MongoDB, y puede funcionar como un reemplazo de MongoDB en muchos casos.
Why do we need FerretDB?
Y pensaréis, ¿por qué usar FerretDB en lugar de MongoDB?
MongoDB fue originalmente una tecnología fascinante para muchos desarrolladores, permitiéndonos construir aplicaciones más rápidamente que utilizando bases de datos relacionales. En sus inicios, su facilidad de uso y sus controladores bien documentados hicieron de MongoDB una de las soluciones de bases de datos más sencillas disponibles. Sin embargo, con el paso del tiempo, MongoDB abandonó sus raíces de código abierto, cambiando la licencia a SSPL, lo que la hizo inutilizable para muchos proyectos de código abierto y comerciales en fase inicial.
La mayoría de los usuarios de MongoDB no necesitan las características avanzadas que ofrece MongoDB; sin embargo, necesitan una solución de base de datos de código abierto fácil de usar. Reconociendo esto, FerretDB está aquí para llenar ese vacío.
¿Y puede reemplazar a MongoDB?
Tras leer su documentación (the project is in its early stages) y hacer unas pequeñas pruebas no parece que FerretDB sea un reemplazo en la actualidad, sin embargo su roadmap (https://github.com/orgs/FerretDB/projects/2/views/1) sugiere que pronto pueda serlo 😊
Un ejemplo
Si queréis echarle un ojo a FerretDB os recomiendo este ejemplo: https://github.com/FerretDB/example
Donde podéis ver cómo se accede a FerretDB desde el mongosh:
Y como esos mismos datos están disponibles en Postgresql con su psql: