Release of FerretDB 0.3, a MongoDB implementation based on PostgreSQL.

The release of FerretDB 0.3 has been published, allowing for the replacement of the document-oriented database MongoDB with PostgreSQL without making changes to application code. FerretDB is implemented as a proxy server that translates MongoDB requests into SQL queries for PostgreSQL, enabling the use of PostgreSQL as the actual storage. The code is written in Go and is distributed under the Apache 2.0 license.

The need for migration may arise due to MongoDB's transition to a non-free SSPL license, which is based on the AGPLv3 license but is not open as it includes a discriminatory requirement to supply not only the application code but also the source texts of all components involved in providing the cloud service under the SSPL license.

The primary target audience for FerretDB consists of users who do not utilize the advanced features of MongoDB in their applications but wish to use a fully open software stack. At the current stage of development, FerretDB only supports part of the capabilities of MongoDB that are most commonly used in typical applications. Future plans aim to achieve full compatibility with MongoDB drivers and provide the option to use FerretDB as a seamless replacement for MongoDB.

MongoDB occupies a niche between fast and scalable systems that operate with key/value data and relational database management systems that are functional and convenient for query formation. MongoDB supports document storage in a JSON-like format, has a sufficiently flexible query language, can create indexes for various stored attributes, efficiently manages large binary objects, supports logging of operations for data changes and additions in the database, can operate according to the Map/Reduce paradigm, and supports replication and building fault-tolerant configurations.

In the FerretDB 0.3 release, the findAndModify command is implemented, which modifies a document but returns its original version. Field update operators — $inc and $set — have been implemented. Support for sorting scalar data types has been added.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster