Eerste stabiele vrystelling van FerretDB, MongoDB-implementering gebaseer op PostgreSQL DBMS

Die vrystelling van die FerretDB 1.0-projek is gepubliseer, wat jou toelaat om die dokument-georiënteerde DBMS MongoDB met PostgreSQL te vervang sonder om veranderinge aan die toepassingskode aan te bring. FerretDB word geïmplementeer as 'n instaanbediener wat oproepe na MongoDB in SQL-navrae na PostgreSQL vertaal, wat jou toelaat om PostgreSQL as die werklike berging te gebruik. Weergawe 1.0 is gemerk as die eerste stabiele vrystelling wat gereed is vir algemene gebruik. Die kode is in Go geskryf en onder die Apache 2.0-lisensie versprei.

Die hoofteikengehoor vir FerretDB is gebruikers wat nie MongoDB gevorderde kenmerke in hul toepassings gebruik nie, maar 'n heeltemal oop sagtewarestapel wil gebruik. Op sy huidige stadium van ontwikkeling ondersteun FerretDB 'n subset van die MongoDB-kenmerke wat die meeste in tipiese toepassings gebruik word. Die behoefte om FerretDB te implementeer kan ontstaan ​​in verband met die oorgang van MongoDB na 'n nie-vrye SSPL lisensie, wat gebaseer is op die AGPLv3 lisensie, maar nie oop is nie, aangesien dit 'n diskriminerende vereiste bevat om onder die SSPL lisensie te verskaf nie net die toepassingskode self, maar ook die bronkodes van alle komponente betrokke by die verskaffing van wolkdienste.

MongoDB beslaan 'n nis tussen vinnige en skaalbare stelsels wat werk op sleutel-/waardedata en relasionele DBBS'e wat funksioneel en maklik is om navraag te doen. MongoDB ondersteun die stoor van dokumente in 'n JSON-agtige formaat, het 'n redelik buigsame taal vir die generering van navrae, kan indekse vir verskeie gestoorde eienskappe skep, verskaf doeltreffend berging van groot binêre voorwerpe, ondersteun aanteken van bewerkings om data te verander en by die databasis te voeg, kan werk in ooreenstemming met die paradigma Map/Reduce, ondersteun replikasie en bou van foutverdraagsame konfigurasies.

Onder die veranderinge in FerretDB 1.0:

  • Geïmplementeer createIndex en dropIndex opdragte vir die skep en laat val van een of meer indekse na 'n versameling.
  • Die getMore-opdrag is geïmplementeer om 'n nuwe gedeelte van die resultaat te vertoon wat verkry is deur die uitvoering van opdragte wat 'n wyser terugstuur, soos vind en saamvoeg.
  • Bygevoeg ondersteuning vir die $som-aggregasie-operateur om die som van groepwaardes te bereken.
  • Bygevoeg ondersteuning vir die $limit- en $skip-operateurs om die aantal te beperk en dokumente oor te slaan tydens samevoeging.
  • Bygevoeg ondersteuning vir die $count operateur vir die tel van dokumente tydens samevoeging.
  • Bygevoeg ondersteuning vir die $ unwind operateur om skikking velde te ontleed in inkomende dokumente en vorm 'n lys met 'n aparte dokument vir elke skikking element.
  • Bygevoeg gedeeltelike ondersteuning vir collStats, dbStats en dataSize opdragte om versameling en databasis statistieke en data grootte te kry.

Bron: opennet.ru

Voeg 'n opmerking