
MongoDB without MongoDB: FerretDB 1.0 bridges the gap with PostgreSQL
FerretDB 1.0 has just been released, and it is a groundbreaking development for users who want to replace MongoDB's document-oriented DBMS with PostgreSQL without changing their application's code. This is possible because FerretDB is a proxy server that translates MongoDB calls into SQL queries to PostgreSQL. This is particularly useful for users who do not utilize MongoDB's advanced features in their applications but would still like to utilize a fully open-source software stack. Currently, FerretDB is compatible with a subset of MongoDB's most frequently used features in typical applications.
MongoDB occupies a unique position in the world of databases, falling between fast and scalable key/value data systems and functional and easy-to-query relational DBMSs. Given the need to create FerretDB, MongoDB's transition to a non-free SSPL license is an issue to be reckoned with. In addition, FerretDB 1.0 boasts several new features, including support for the createIndexes and dropIndexes commands, the getMore command, and the $sum aggregation operator. Other changes in the new version include the use of iterators for sort, limit, skip, and projection, improvements in resource tracking, and tests for the skip argument of find and count.
To test FerretDB, it is recommended to modify and run it on the host with PostgreSQL and other dependencies running inside Docker containers through Docker Compose. FerretDB 1.0 is an exciting development for users who want to use a fully open-source software stack but don't want to give up the functionality of MongoDB.
Our take: FerretDB 1.0 offers an excellent solution for users who want to migrate from MongoDB to a fully open-source software stack. Its ability to replace MongoDB's document-oriented DBMS with PostgreSQL without changing the application's code is impressive, making it a valuable tool for users who do not use MongoDB's advanced features.