The first stable release of FerretDB, a MongoDB implementation based on the PostgreSQL database management system.

The 1.0 release of the FerretDB project has been published, allowing the replacement of the document-oriented database MongoDB with PostgreSQL without modifying application code. FerretDB operates as a proxy server, translating MongoDB requests into SQL queries for PostgreSQL, enabling PostgreSQL to serve as the actual data store. Version 1.0 is marked as the first stable release, ready for widespread use. The code is written in Go and distributed under the Apache 2.0 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 this stage of development, FerretDB supports a subset of MongoDB capabilities that are most commonly used in typical applications. The need to implement FerretDB may arise due to MongoDB's transition to a non-free licensing model, the SSPL, which is based on the AGPLv3 license but is not open, as it contains a discriminatory requirement for provisioning not only the application code but also the source code of all components involved in providing the cloud service under the SSPL license.

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.

Key changes in FerretDB 1.0 include:

  • The createIndexes and dropIndexes commands have been implemented for creating and removing one or more indexes on a collection.
  • The getMore command has been implemented to output a new batch of results retrieved from commands that return a cursor, such as find and aggregate.
  • Support for the aggregation operator $sum has been added to calculate the sum of values in a group.
  • Support for the $limit and $skip operators has been added to limit and skip documents during aggregation.
  • Support for the $count operator has been added to count documents during aggregation.
  • Support for the $unwind operator has been added to parse array fields in incoming documents and create a list with a separate document for each array element.
  • Partial support for the collStats, dbStats, and dataSize commands has been added to obtain statistics about collections and databases, as well as data sizes.

Source: opennet.ru

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