Lansiranje nova verzija FerretDB 1.0 projekta, koji vam omogućava da zamenite MongoDB-ov dokument orijentisan DBMS sa PostgreSQL-om bez ikakvih promena u kodu aplikacije. FerretDB je implementiran kao proxy server koji prevodi MongoDB pozive u SQL upitima u PostgreSQL, omogućavajući vam da koristite PostgreSQL kao stvarnu pohranu.
Verzija 1.0 je označena kao prvo stabilno izdanje spremno za opću upotrebu. FerretDB-ova primarna ciljna publika su korisnici koji ne koriste napredne karakteristike MongoDB-a u svojim aplikacijama, ali žele da koriste potpuno otvoren softverski stog.
U sadašnjoj fazi razvoja, FerretDB podržava podskup MongoDB funkcija koji se najčešće koriste u tipičnim aplikacijama. Potreba za implementacijom FerretDB-a može se pojaviti u vezi sa prelaskom MongoDB-a na neslobodnu SSPL licencu, koja se zasniva na AGPLv3 licenci, ali nije otvorenog koda, jer sadrži diskriminatorni zahtjev za isporuku pod SSPL licencom ne samo sam kod aplikacije, ali i izvorni kodovi svih komponenti uključenih u pružanje usluga u oblaku.
MongoDB zauzima nišu između brzih i skalabilnih sistema koji rade na podacima ključ/vrijednost i DBMS-ovima relacijske baze podataka koje su funkcionalne i koje je lako ispitivati. MongoDB podržava skladištenje dokumenata u formatu sličnom JSON-u, ima prilično fleksibilan jezik za pravljenje upita, može kreirati indekse za različite pohranjene atribute, pruža efikasno skladištenje binarnih velikih objekata, podržava operacije evidentiranja za promjenu i dodavanje podataka u bazu podataka, može raditi prema paradigmi Map/Reduce, podržava replikaciju i izgradnju konfiguracija otpornih na greške.
Glavne novine FerretDB 1.0
U ovoj novoj verziji koja je predstavljena, to je naglašeno implementirane su naredbe createIndexes i dropIndexes za kreiranje i postavljanje jednog ili više indeksa na kolekciju, pored naredbe getMore je implementiran za prikaz novog dijela dohvaćenog rezultata od izvršavanja naredbi koje vraćaju kursor, kao što je pronađi i dodaj.
Još jedna od promjena koja se izdvaja od nove verzije dodana podrška za $sum operator agregacije da se izračuna zbir grupnih vrijednosti, kao i ono što je dodano podrška za $limit i $skip operatore da ograničite broj i preskočite dokumente prilikom dodavanja i da je dodata podrška za operator $count za brojanje dokumenata prilikom dodavanja.
Pored ovoga, takođe se napominje da je dodata podrška za $unwind operator za raščlanjivanje polja niza u dolaznim dokumentima i formiranje liste sa zasebnim dokumentom za svaki element niza i takođe dodata delimična podrška za komande collStats , dbStats i dataSize da dobijete statistiku prikupljanja i baze podataka i veličinu podataka.
Of the druge promjene koje se ističu nove verzije:
- Iteratori se sada koriste za `sortiranje`, `ograničenje`, `preskakanje` i `projekciju`
- bump zavisnosti
- Poboljšanja praćenja resursa
- Dodati testovi za argument `skip` za `find` i `count
- Ispravno zatvorite iterator
- Poboljšanja inicijalizacije velikih brojeva u test podacima
Konačno ako ste zainteresirani da saznate više o tome, možete provjeriti detalje Na sledećem linku.
Za one koji su zainteresovani za kod, trebalo bi da znate da je napisan u Go i da se distribuira pod licencom Apache 2.0.
I oni bi to trebali znati najbolji način da testirate FerretDB je da ga modificirate i pokrenete na hostu (Linux, macOS ili Windows) sa PostgreSQL-om i drugim zavisnostima koji se pokreću unutar Docker kontejnera preko Docker Compose.
Na Linuxu, docker mora biti instaliran na hostu. Na macOS-u i Windows-u mora se koristiti Docker Desktop, dok na Windows-u mora biti konfigurisan da koristi WSL 2 bez ikakve distribucije; sve naredbe moraju biti izvršene na hostu.