A liberazione di u prughjettu FerretDB 1.0 hè stata publicata, chì permette di rimpiazzà u DBMS MongoDB orientatu à documentu cù PostgreSQL senza fà cambiamenti à u codice di l'applicazione. FerretDB hè implementatu cum'è un servitore proxy chì traduce e chjama à MongoDB in dumande SQL à PostgreSQL, chì vi permette di utilizà PostgreSQL cum'è l'almacenamiento propiu. A versione 1.0 hè marcata cum'è a prima versione stabile pronta per l'usu generale. U codice hè scrittu in Go è distribuitu sottu a licenza Apache 2.0.
U publicu di destinazione primariu di FerretDB hè l'utilizatori chì ùn utilizanu micca e capacità avanzate di MongoDB in e so applicazioni, ma volenu aduprà una pila di software completamente aperta. In u so stadiu attuale di sviluppu, FerretDB supporta un subset di capacità MongoDB chì sò più cumunimenti usati in applicazioni tipiche. A necessità di implementà FerretDB pò esse in cunnessione cù a transizione di MongoDB à a licenza SSPL proprietaria, chì hè basatu annantu à a licenza AGPLv3, ma ùn hè micca aperta, postu chì cuntene un requisitu discriminatoriu per furnisce sottu a licenza SSPL micca solu u codice di l'applicazione. stessu, ma ancu i codici surghjenti di tutti i cumpunenti implicati in a prestazione di serviziu di nuvola.
MongoDB occupa un nichu trà i sistemi veloci è scalabili chì operanu nantu à dati chjave / valore è DBMSs relazionale chì sò funziunali è faciuli di interrogà. MongoDB supporta l'almacenamiento di documenti in un formatu JSON-like, hà una lingua abbastanza flessibile per generà e dumande, pò creà indici per diversi attributi almacenati, furnisce in modu efficiente u almacenamentu di grandi oggetti binari, supporta u logu di operazioni per cambià è aghjunghje dati à a basa di dati, pò. travaglià in cunfurmità cù u paradigma Map / Reduce, supporta a replicazione è custruisce cunfigurazioni toleranti à i difetti.
Trà i cambiamenti in FerretDB 1.0:
- I cumandamenti createIndexes è dropIndexes sò stati implementati per creà è sguassà unu o più indici nantu à una cullizzioni.
- U cumandimu getMore hè statu implementatu per vede una nova parte di u risultatu ottenutu da eseguisce cumandamenti chì tornanu un cursore, cum'è truvà è aggregate.
- Aghjunghje supportu per l'operatore di aggregazione $sum per calculà a summa di i valori di u gruppu.
- Aghjunghje supportu per l'operatori $limit è $skip per limità u numeru è saltà di documenti durante l'aggregazione.
- Aghjunghje supportu per l'operatore $count per cuntà i documenti durante l'agregazione.
- Aghjunghje supportu per l'operatore $unwind per analizà i campi di array in documenti entranti è generà una lista cù un documentu separatu per ogni elementu di array.
- Aghjunghje un supportu parziale per i cumandamenti collStats, dbStats è dataSize per ottene statistiche nantu à a cullizzioni è a basa di dati, è ancu a dimensione di dati.
Source: opennet.ru