Prima versione stabile di FerretDB, implementazione di MongoDB basata su PostgreSQL.

È stato pubblicato il rilascio del progetto FerretDB 1.0, che consente di sostituire il database orientato ai documenti MongoDB con PostgreSQL senza modificare il codice delle applicazioni. FerretDB è realizzato come server proxy, che traduce le chiamate a MongoDB in query SQL per PostgreSQL, permettendo di utilizzare PostgreSQL come effettivo deposito dei dati. La versione 1.0 è contrassegnata come il primo rilascio stabile, pronto per un uso diffuso. Il codice è scritto in Go e distribuito sotto licenza Apache 2.0.

Il pubblico principale di FerretDB è composto da utenti che non utilizzano le funzionalità avanzate di MongoDB nelle loro applicazioni ma desiderano impiegare un'intera stack software open source. Attualmente, FerretDB supporta un sottoinsieme delle funzionalità di MongoDB, quelle più comunemente utilizzate nelle applicazioni standard. La necessità di adottare FerretDB può sorgere a causa del passaggio di MongoDB a una licenza non libera, la SSPL, che si basa sulla licenza AGPLv3, ma non è open source, poiché include una clausola discriminatoria che richiede la fornitura non solo del codice dell'applicazione, ma anche del codice sorgente di tutti i componenti coinvolti nella fornitura del servizio cloud.

MongoDB occupa una posizione intermedia tra sistemi rapidi e scalabili che gestiscono dati in formato chiave/valore e i database relazionali, funzionali e facili da interrogare. MongoDB supporta la memorizzazione di documenti in formato simile a JSON, ha un linguaggio sufficientemente flessibile per la creazione di query, può creare indici per vari attributi memorizzati, gestisce efficacemente la memorizzazione di grandi oggetti binari, supporta il logging delle operazioni di modifica e aggiunta dei dati nel database, può operare secondo la paradigma Map/Reduce, supporta la replica e costruzioni di configurazioni ad alta disponibilità.

Tra le novità in FerretDB 1.0:

  • Implementate le comandi createIndexes e dropIndexes per creare ed eliminare uno o più indici da una collezione.
  • Implementato il comando getMore per fornire un nuovo insieme di risultati ottenuti dall'esecuzione di comandi che restituiscono un cursore, come find e aggregate.
  • Aggiunto il supporto per l'operatore aggregato $sum per calcolare la somma dei valori di un gruppo.
  • Aggiunto il supporto per gli operatori $limit e $skip per limitare il numero e saltare documenti durante l'aggregazione.
  • Aggiunta del supporto per l'operatore $count per il conteggio dei documenti durante l'aggregazione.
  • Aggiunta del supporto per l'operatore $unwind per analizzare i campi degli array nei documenti in ingresso e creare un elenco con un documento separato per ogni elemento dell'array.
  • Aggiunto supporto parziale per i comandi collStats, dbStats e dataSize per ottenere statistiche sulla raccolta e sul DB, oltre che sulla dimensione dei dati.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster