FerretDB 0.3 jau išleista, sužinokite, kas naujo šiame MangoDB modernizavime

Prieš kelias savaites čia, tinklaraštyje, dalinamės naujienomis pakeisti MangoDB projekto pavadinimą kuri leidžia jums pakeisti MongoDB į dokumentus orientuotą DBVS su PostgreSQL neatliekant jokių programos kodo pakeitimų.

Naujasis projekto pavadinimas yra FerretDB ir neseniai buvo paskelbta apie projekto 0.3 versijos išleidimą. FerretDB 0.3 versijoje įdiegta komanda findAndModify, kuri modifikuoja dokumentą, bet grąžina pradinę jo versiją, taip pat lauko naujinimo operatorius, be kita ko.

Tiems, kurie vis dar nežino apie FerretDB, turėtumėte tai žinoti tai įgyvendinama kaip tarpinis serveris, kuris iškvietimus į MongoDB paverčia SQL užklausomis į PostgreSQL, kuri leidžia naudoti PostgreSQL kaip tikrą saugyklą.

Migracijos poreikis gali iškilti dėl MongoDB perėjimo prie nelaisvos SSPL licencijos, kuri yra pagrįsta AGPLv3 licencija, bet nėra atvira, nes joje yra diskriminacinis reikalavimas pagal SSPL licenciją teikti ne tik programą. patį kodą, bet ir visų komponentų, dalyvaujančių teikiant debesies paslaugą, šaltinio kodus.

Pagrindinė FerretDB tikslinė auditorija yra vartotojai, kurie nesinaudoja išplėstinėmis funkcijomis MongoDB savo programose, bet nori naudoti visiškai atvirą programinės įrangos krūvą.

Dabartiniame vystymosi etape FerretDB vis dar palaiko tik dalį MongoDB funkcijų kurie dažniausiai naudojami tipinėse programose. Ateityje jie planuoja pasiekti visišką MongoDB tvarkyklių palaikymą ir suteikti galimybę naudoti FerretDB kaip skaidrų MongoDB pakaitalą.

„MongoDB“ užima nišą tarp greitų ir keičiamo dydžio sistemų, veikiančių pagal rakto / vertės duomenis, ir reliacinių DBVS, kurios yra funkcionalios ir lengvai pateikiamos užklausos.

MongoDB palaiko dokumentų saugojimą į JSON panašų formatą, turi gana lanksčią užklausų generavimo kalbą, gali kurti indeksus įvairiems saugomiems atributams, užtikrina efektyvų dvejetainių didelių objektų saugojimą, palaiko operacijų registravimą keisti ir įtraukti duomenis į duomenų bazę. gali veikti pagal Map/Reduce paradigmą, palaiko replikaciją ir gedimams atsparių konfigūracijų kūrimą.

Dėl skirtumų PostgreSQL ir MongoDB json funkcijų semantikoje, buvo neatitikimas elgesys lyginant ir tvarkant skirtingus tipus. Norint išspręsti šią problemą, dabar iš PostgreSQL išgaunamas perteklinių duomenų pavyzdys ir rezultato filtravimas atliekamas FerretDB pusėje, todėl daugeliu atvejų buvo galima pakartoti MongoDB elgesį.

Pagrindinės FerretDB 0.3 naujovės

Kaip minėta pradžioje, naujoji FerretDB 0.3 versija išsiskiria tuo, kad pristato FindAndModify komanda, kuri pakeičia dokumentą, bet grąžina pradinę jo versiją.

Kiti pokyčiai, kurie išsiskiria, yra tai patobulintas neigiamo nulio valdymas, taip pat buvo pridėtas skaliarinių duomenų tipų užsakymo palaikymas.

Taip pat paryškinti yra įdiegti nauji lauko naujinimo operatoriai: $inc ir $set, pridėtas skaliarinių duomenų tipų užsakymo palaikymas.

Kita vertus, minima, kad buvo atlikti įvairūs PostgreSQL ir MongoDB versijų tvarkymo patobulinimai.

Neskaitant to, taip pat pažymima, kad buvo ištaisytas neteisingas operatoriaus $mod testas, taip pat, kad testas išleistas visose ARM64 operacinėse sistemose ir kad buvo pridėtas didesnis maršrutizatoriaus / tarpinio serverio klaidų registravimo lygių matomumas.

Iš kitų pokyčių kurie išsiskiria iš šios naujos versijos:

  • Atnaujinti CODEOWNERS
  • Sinchronizuoti netikrus valdiklius ir psl
  • Pervardykite OP_*constants į OpCode*constants
  • Patobulinkite gopkg.in/yaml.v3
  • Sujunkite gopkg.in/yaml.v3 įrankiuose
  • Padaryti tipo kelią
  • Panika dėl netikėtų eilės verčių
  • Pridėkite keletą komentarų prie funkcijų ir kintamųjų
  • Pašalinkite negyvą kodą

Pagaliau jei norite sužinoti daugiau apie tai, galite patikrinti išsamią informaciją Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.