Ukukhishwa kwe-FerretDB 0.1, ukuqaliswa kwe-MongoDB okusekelwe ku-PostgreSQL DBMS

Ukukhishwa kwephrojekthi ye-FerretDB 0.1 (owayekade eyi-MangoDB) kushicilelwe, okukuvumela ukuthi umiselele i-DBMS MongoDB egxile kumadokhumenti ufake i-PostgreSQL ngaphandle kokwenza izinguquko kukhodi yesicelo. I-FerretDB isetshenziswa njengeseva elibamba ehumusha izingcingo eziya ku-MangoDB ziyise imibuzo ye-SQL ku-PostgreSQL, okuvumela i-PostgreSQL ukuthi isetshenziswe njengendawo yokugcina yangempela. Ikhodi ibhalwe ku-Go futhi isatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0.

Isidingo sokufuduka singase siphakame ngenxa yokushintshela kwe-MongoDB kwilayisensi yobunikazi ye-SSPL, esekelwe kulayisensi ye-AGPLv3, kodwa engavuliwe, njengoba iqukethe imfuneko ebandlululayo yokulethwa ngaphansi kwelayisensi ye-SSPL hhayi ikhodi yesicelo ngokwayo, kodwa futhi ikhodi yomthombo yazo zonke izingxenye ezihilelekile kusevisi yefu yokunikezwa.

Izithameli eziqondiswe yiFerretDB abasebenzisi abangawasebenzisi amakhono athuthukile e-MongoDB ezinhlelweni zabo zokusebenza, kodwa abafuna ukusebenzisa isitaki sesofthiwe esivuleke ngokuphelele. Esigabeni samanje sokuthuthuka, i-FerretDB isasekela kuphela ingxenye yamakhono e-MongoDB asetshenziswa kakhulu ezinhlelweni ezijwayelekile. Ngokuzayo, bahlela ukuzuza ukusebenzisana okugcwele nabashayeli be-MongoDB futhi banikeze amandla okusebenzisa i-FerretDB njengokumiselela okusobala kwe-MongoDB.

Masikhumbule ukuthi i-MongoDB ithatha i-niche phakathi kwezinhlelo ezisheshayo nezisheshayo ezisebenzisa idatha ngefomethi yokhiye/inani, kanye nama-DBMS ahlobene asebenzayo futhi kulula ukwenza imibuzo. I-MongoDB isekela ukugcinwa kwamadokhumenti ngefomethi efana ne-JSON, inolimi oluvumelana nezimo ukuze ikhiqize imibuzo, ingakha izinkomba zezici ezihlukahlukene ezigciniwe, inikeze ngokuyimpumelelo isitoreji sezinto ezinkulu kanambambili, isekela ukugawulwa kwemisebenzi yokuguqula nokwengeza idatha kusizindalwazi, sebenza ngokuhambisana ne-paradigm Map/Nciphisa, isekela ukuphindaphinda kanye nokwakhiwa kokucushwa okubekezelela amaphutha.

Ukukhishwa kwe-FerretDB 0.1.0 kuyihlele kabusha ngokuphelele indlela yokubuyisa idatha ku-PostgreSQL. Ngaphambilini, esicelweni ngasinye se-MongoDB esingenayo, umbuzo owodwa we-SQL wawenziwe ku-PostgreSQL, kusetshenziswa imisebenzi yokusebenza ngefomethi ye-JSON nokuhlunga imiphumela ohlangothini lwe-PostgreSQL. Ngenxa yomehluko kuma-semantics wemisebenzi ye-PostgreSQL ne-MongoDB json, kube nokungafani ekuziphatheni lapho kuqhathaniswa futhi kuhlungwa izinhlobo ezahlukene. Ukuze kuxazululwe le nkinga, idatha manje isilandwa ngokuphindaphindiwe ku-PostgreSQL, futhi umphumela uhlungwa ohlangothini lwe-FerretDB, okwenze kwaba nokwenzeka ukuphindaphinda ukuziphatha kwe-MongoDB ezimeni eziningi.

Intengo yokuhambisana okwenyukile ibe ukwehla kokusebenza, lokho ekukhishweni okuzayo abalindele ukukunxephezela ngokuhlunga ngokukhetha ohlangothini lwe-FerretDB kuphela imibuzo lapho kunokungqubuzana khona ekuziphatheni. Isibonelo, umbuzo othi "db.collection.find({_id: 'some-id-value'})" ungacutshungulwa ngokuphelele ku-PostgreSQL. Umgomo oyinhloko wephrojekthi kulesi sigaba sokuthuthuka ukuzuza ukusebenzisana ne-MongoDB, futhi ukusebenza kuhlehliselwe ngemuva okwamanje. Phakathi kwezinguquko zokusebenza enguqulweni entsha, ukusekelwa kwawo wonke ama-bit operators, i-opharetha yokuqhathanisa ethi “$eq”, kanye nama-opharetha we-“$elemMatch” kanye ne-“$bitsAllClear” kuyaphawulwa.

Source: opennet.ru

Engeza amazwana