Ho lokolloa ha FerretDB 0.1, ts'ebetsong ea MongoDB e thehiloeng ho PostgreSQL DBMS

Ho lokolloa ha projeke ea FerretDB 0.1 (eo pele e neng e le MangoDB) e hatisitsoe, e u lumellang hore u nke sebaka sa DBMS MongoDB e shebaneng le litokomane ka PostgreSQL ntle le ho etsa liphetoho khoutung ea kopo. FerretDB e kenngoa ts'ebetsong e le seva sa proxy se fetolelang mehala ho MangoDB ho lipotso tsa SQL ho PostgreSQL, e lumellang PostgreSQL hore e sebelisoe e le polokelo ea sebele. Khoutu e ngotsoe ho Go mme e ajoa tlasa laesense ea Apache 2.0.

Tlhokahalo ea ho falla e ka hlaha ka lebaka la phetoho ea MongoDB ho laesense ea mong'a SSPL, e ipapisitseng le laesense ea AGPLv3, empa e sa buloa, kaha e na le tlhoko ea khethollo ea ho fana ka tlas'a laesense ea SSPL eseng khoutu ea kopo feela ka boyona, empa hape. khoutu ea mohloli oa likarolo tsohle tse amehang ho fana ka tšebeletso ea maru.

Bamameli ba FerretDB ke basebelisi ba sa sebeliseng bokhoni bo tsoetseng pele ba MongoDB lits'ebetsong tsa bona, empa ba batla ho sebelisa software e bulehileng ka botlalo. Boemong ba hajoale ba nts'etsopele, FerretDB e ntse e ts'ehetsa karolo feela ea bokhoni ba MongoDB bo sebelisoang hangata lits'ebetsong tse tloaelehileng. Nakong e tlang, ba rera ho fihlela tumellano e felletseng le bakhanni ba MongoDB le ho fana ka bokhoni ba ho sebelisa FerretDB joalo ka phetisetso e pepeneneng ea MongoDB.

A re hopoleng hore MongoDB e na le sebaka se pakeng tsa lits'ebetso tse potlakileng le tse scalable tse sebelisang data ka sebopeho sa senotlolo / boleng, le li-DBMS tse amanang tse sebetsang le tse bonolo ho theha lipotso. MongoDB e ts'ehetsa ho boloka litokomane ka mokhoa o kang oa JSON, e na le puo e feto-fetohang hantle bakeng sa ho hlahisa lipotso, e ka etsa li-index bakeng sa litšobotsi tse fapaneng tse bolokiloeng, e fana ka polokelo ea lintho tse kholo tsa binary, e ts'ehetsa ho rengoa ha lits'ebetso bakeng sa ho fetola le ho eketsa data ho database sebetsa ho latela paradigm 'Mapa / Fokotsa, e ts'ehetsa ho pheta-pheta le kaho ea litlhophiso tse mamellang liphoso.

Ho lokolloa ha FerretDB 0.1.0 ho ile ha hlophisa bocha mokhoa oa ho khutlisa data ho tsoa PostgreSQL. Pejana, bakeng sa kopo e 'ngoe le e' ngoe e kenang ea MongoDB, potso e le 'ngoe ea SQL e ile ea hlahisoa ho PostgreSQL, ho sebelisoa mesebetsi bakeng sa ho sebetsa ka sebopeho sa JSON le ho sefa liphetho ka lehlakoreng la PostgreSQL. Ka lebaka la liphapang tsa semantics ea mesebetsi ea PostgreSQL le MongoDB json, ho bile le ho se tšoane ha boitšoaro ha ho bapisoa le ho hlophisa mefuta e fapaneng. Ho rarolla bothata bona, data e se e nkuoe ka bongata ho tsoa ho PostgreSQL, 'me sephetho se tlhotliloeng ka lehlakoreng la FerretDB, se entseng hore ho khonehe ho pheta boitšoaro ba MongoDB maemong a mangata.

Theko ea ts'ebelisano e ntseng e eketseha e bile ho fokotseha ha ts'ebetso, eo nakong e tlang ba lebelletseng ho e lefa ka ho khetha ka lehlakoreng la FerretDB feela lipotso tseo ho tsona ho nang le phapang boitšoarong. Mohlala, potso "db.collection.find({_id: 'some-id-value'})" e ka sebetsoa ka botlalo ho PostgreSQL. Sepheo sa mantlha sa morero mothating ona oa nts'etsopele ke ho fihlela tumellano le MongoDB, mme ts'ebetso e behiloe ka morao hajoale. Har'a liphetoho tse sebetsang phetolelong e ncha, ts'ehetso bakeng sa li-bit operators tsohle, "$eq" ea papiso ea "$ eq", hammoho le "$ elemMatch" le "$ bitsAllClear" basebelisi ba hlokometsoe.

Source: opennet.ru

Eketsa ka tlhaloso