Tso tawm FerretDB 0.1, ib qho kev siv ntawm MongoDB raws li PostgreSQL DBMS

Kev tso tawm ntawm FerretDB 0.1 qhov project (yav tas los MangoDB) tau tshaj tawm, tso cai rau koj los hloov cov ntaub ntawv-oriented DBMS MongoDB nrog PostgreSQL yam tsis tau hloov pauv rau daim ntawv thov code. FerretDB tau siv los ua tus neeg rau zaub mov npe uas txhais lus hu rau MangoDB rau hauv SQL queries rau PostgreSQL, tso cai rau PostgreSQL siv los ua qhov chaw cia. Cov cai tau sau rau hauv Go thiab faib raws li Apache 2.0 daim ntawv tso cai.

Qhov xav tau kev tsiv teb tsaws chaw tuaj yeem tshwm sim vim MongoDB txoj kev hloov pauv mus rau ib daim ntawv tso cai SSPL uas yog tus tswv, uas yog raws li daim ntawv tso cai AGPLv3, tab sis tsis qhib, vim nws muaj kev ntxub ntxaug kom xa raws li daim ntawv tso cai SSPL tsis yog daim ntawv thov code xwb, tab sis kuj lub hauv paus code ntawm tag nrho cov Cheebtsam koom nyob rau hauv cov kev pab cuam huab.

FerretDB lub hom phiaj cov neeg siv yog cov neeg siv uas tsis siv lub peev xwm siab tshaj ntawm MongoDB hauv lawv cov ntawv thov, tab sis xav siv cov software qhib tag nrho. Nyob rau theem tam sim no ntawm kev txhim kho, FerretDB tseem txhawb nqa tsuas yog ib feem ntawm MongoDB lub peev xwm uas feem ntau siv rau hauv cov ntawv thov raug. Nyob rau hauv lub neej yav tom ntej, lawv npaj kom ua tiav tag nrho kev sib raug zoo nrog cov neeg tsav tsheb rau MongoDB thiab muab lub peev xwm los siv FerretDB ua pob tshab hloov rau MongoDB.

Nco qab tias MongoDB tuav lub niche ntawm ceev thiab scalable systems uas ua hauj lwm ntawm cov ntaub ntawv nyob rau hauv cov ntaub ntawv tseem ceeb / tus nqi hom, thiab kev sib raug zoo DBMS, haumxeeb thiab yooj yim nyob rau hauv tsim queries. MongoDB txhawb nqa cov ntaub ntawv khaws cia hauv JSON-zoo li hom lus, muaj cov lus hloov tau yooj yim rau kev tsim cov lus nug, tuaj yeem tsim cov indexes rau ntau yam khaws cia, muaj txiaj ntsig zoo muab khaws cia ntawm cov khoom loj binary, txhawb kev txiav cov haujlwm los hloov thiab ntxiv cov ntaub ntawv rau hauv cov ntaub ntawv, tuaj yeem ua haujlwm raws li daim ntawv qhia paradigm / Txo, txhawb kev rov ua dua thiab tsim cov teeb tsa tsis raug cai.

Kev tso tawm ntawm FerretDB 0.1.0 kiag li rov tsim kho cov txheej txheem ntawm kev khaws cov ntaub ntawv los ntawm PostgreSQL. Yav dhau los, rau txhua qhov kev thov MongoDB, ib qho lus nug SQL tau tsim rau PostgreSQL, siv cov haujlwm ua haujlwm nrog JSON hom thiab lim cov txiaj ntsig ntawm PostgreSQL sab. Vim muaj qhov sib txawv ntawm cov ntsiab lus ntawm PostgreSQL thiab MongoDB json ua haujlwm, muaj qhov sib txawv ntawm tus cwj pwm thaum sib piv thiab txheeb xyuas ntau hom. Txhawm rau daws qhov teeb meem no, cov ntaub ntawv tam sim no rov rub tawm los ntawm PostgreSQL, thiab cov txiaj ntsig tau lim ntawm FerretDB sab, uas ua rau nws tuaj yeem rov ua tus cwj pwm ntawm MongoDB hauv ntau lub sijhawm.

Tus nqi ntawm kev sib tw nce ntxiv yog qhov txo qis hauv kev ua tau zoo, uas nyob rau yav tom ntej tso tawm lawv xav kom them nyiaj los ntawm kev xaiv lim ntawm FerretDB sab tsuas yog cov lus nug uas muaj qhov sib txawv ntawm tus cwj pwm. Piv txwv li, cov lus nug "db.collection.find({_id: 'some-id-value'})" tuaj yeem ua tiav hauv PostgreSQL. Lub hom phiaj tseem ceeb ntawm txoj haujlwm nyob rau theem ntawm kev txhim kho no yog kom ua tiav kev sib raug zoo nrog MongoDB, thiab kev ua haujlwm tau raug tso tawm mus rau keeb kwm yav dhau los tam sim no. Ntawm cov kev hloov pauv hloov pauv hauv cov ntawv tshiab, kev txhawb nqa rau txhua tus tswv lag luam me, "$ eq" tus neeg teb xov tooj sib piv, nrog rau "$elemMatch" thiab "$bitsAllClear" cov neeg ua haujlwm tau sau tseg.

Tau qhov twg los: opennet.ru

Ntxiv ib saib