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 documentale MongoDB con PostgreSQL senza apportare modifiche al codice delle applicazioni. FerretDB è implementato come server proxy, che traduce le richieste a MongoDB in query SQL a PostgreSQL, consentendo di utilizzare PostgreSQL come effettivo archivio. La versione 1.0 è stata segnata come il primo rilascio stabile, pronto per un uso generalizzato. Il codice è scritto in Go e distribuito sotto licenza Apache 2.0.

Il principale pubblico di riferimento di FerretDB è composto da utenti che non utilizzano nelle loro applicazioni le funzionalità avanzate di MongoDB, ma desiderano una stack software completamente open source. Nella fase attuale dello sviluppo, FerretDB supporta un sottoinsieme delle funzionalità di MongoDB più comunemente utilizzate nelle applicazioni standard. La necessità di implementare FerretDB può sorgere in seguito al passaggio di MongoDB a una licenza non libera SSPL, che si basa sulla licenza AGPLv3, ma non è aperta, poiché contiene il requisito discriminatorio di fornire non solo il codice dell'applicazione, ma anche i codici sorgente di tutti i componenti coinvolti nella fornitura del servizio cloud.

MongoDB occupa una nicchia tra sistemi rapidi e scalabili che operano dati in formato chiave/valore e database relazionali, funzionali e comodi nella formulazione delle query. MongoDB supporta l'archiviazione di documenti in formato JSON-simile, ha un linguaggio abbastanza flessibile per la formulazione delle query, può creare indici per diversi attributi archiviati, gestisce in modo efficace l'archiviazione di grandi oggetti binari, supporta il logging delle operazioni di modifica e aggiunta di dati nel DB, può operare secondo il paradigma Map/Reduce, supporta la replicazione e la costruzione di configurazioni a tolleranza agli errori.

Tra le novità in FerretDB 1.0:

  • Sono state implementate le operazioni createIndexes e dropIndexes per creare ed eliminare uno o più indici su una collezione.
  • È stata implementata l'operazione getMore per restituire una nuova porzione di risultati ottenuti dall'esecuzione di comandi che restituiscono un cursore, come find e aggregate.
  • È stato aggiunto il supporto per l'operatore aggregato $sum per calcolare la somma dei valori di un gruppo.
  • È stata aggiunta la supporto per gli operatori $limit e $skip per limitare il numero e saltare i documenti durante l'aggregazione.
  • È stata aggiunta la supporto per l'operatore $count per contare i documenti durante l'aggregazione.
  • È stata aggiunta la supporto per l'operatore $unwind per analizzare i campi degli array nei documenti di input e formare un elenco con un documento separato per ogni elemento dell'array.
  • È stata aggiunta la supporto parziale per i comandi collStats, dbStats e dataSize per ottenere statistiche sulla collezione e sul DB, così come sulla dimensione dei dati.

Fonte: opennet.ru

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