{"id":107696,"date":"2023-04-04T12:48:31","date_gmt":"2023-04-04T10:48:31","guid":{"rendered":"https:\/\/prohoster.info\/?p=107696"},"modified":"2023-04-04T19:05:56","modified_gmt":"2023-04-04T17:05:56","slug":"pervyj-stabilnyj-vypusk-ferretdb-realizaczii-mongodb-na-baze-subd-postgresql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/news\/pervyj-stabilnyj-vypusk-ferretdb-realizaczii-mongodb-na-baze-subd-postgresql","title":{"rendered":"Prv\u00e9 stabiln\u00e9 vydanie FerretDB, implement\u00e1cia MongoDB na b\u00e1ze datab\u00e1zy PostgreSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bol pridan\u00fd projekt FerretDB 1.0, ktor\u00fd umo\u017e\u0148uje nahradi\u0165 dokumentovo orientovan\u00fa DB MongoDB PostgreSQL bez zmien v k\u00f3de aplik\u00e1ci\u00ed. FerretDB funguje ako proxy server, ktor\u00fd prev\u00e1dza po\u017eiadavky na MongoDB na SQL dotazy pre PostgreSQL, \u010do umo\u017e\u0148uje pou\u017e\u00edva\u0165 PostgreSQL ako skuto\u010dn\u00e9 \u00falo\u017eisko. Verzia 1.0 je ozna\u010den\u00e1 ako prv\u00fd stabiln\u00fd vydanie, pripraven\u00e9 na roz\u0161\u00edren\u00e9 pou\u017e\u00edvanie. K\u00f3d je nap\u00edsan\u00fd v programovacom jazyku Go a \u0161\u00edri sa pod licenciou Apache 2.0.        <\/p>\n<p>Hlavnou cie\u013eovou skupinou FerretDB s\u00fa u\u017e\u00edvatelia, ktor\u00ed vo svojich aplik\u00e1ci\u00e1ch nevyu\u017e\u00edvaj\u00fa roz\u0161\u00edren\u00e9 funkcie MongoDB, ale chc\u00fa pou\u017e\u00edva\u0165 \u00faplne otvoren\u00fd softv\u00e9rov\u00fd stack. V s\u00fa\u010dasnej f\u00e1ze v\u00fdvoja FerretDB podporuje podmno\u017einu funkci\u00ed MongoDB, ktor\u00e9 sa naj\u010dastej\u0161ie pou\u017e\u00edvaj\u00fa v typick\u00fdch aplik\u00e1ci\u00e1ch. Potreba implement\u00e1cie FerretDB m\u00f4\u017ee vznikn\u00fa\u0165 v s\u00favislosti s prechodom MongoDB na neotvoren\u00fa licenciu SSPL, ktor\u00e1 je zalo\u017een\u00e1 na licenci\u00ed AGPLv3, ale nie je otvoren\u00e1, preto\u017ee obsahuje diskrimina\u010dn\u00fa po\u017eiadavku dod\u00e1vania pod licenciou SSPL nielen k\u00f3du samotnej aplik\u00e1cie, ale aj zdrojov\u00fdch textov v\u0161etk\u00fdch komponentov zapojen\u00fdch do poskytovania cloudovej slu\u017eby.         <\/p>\n<p>MongoDB sa nach\u00e1dza v priestore medzi r\u00fdchlymi a \u0161k\u00e1lovate\u013en\u00fdmi syst\u00e9mami, ktor\u00e9 pracuj\u00fa s \u00fadajmi vo form\u00e1te k\u013e\u00fa\u010d\/hodnota, a rela\u010dn\u00fdmi datab\u00e1zov\u00fdmi syst\u00e9mami, ktor\u00e9 s\u00fa funk\u010dn\u00e9 a pohodln\u00e9 pri formulovan\u00ed dopytov. MongoDB podporuje ukladanie dokumentov v JSON-podobnom form\u00e1te, m\u00e1 dos\u0165 flexibiln\u00fd jazyk na formulovanie dopytov, dok\u00e1\u017ee vytv\u00e1ra\u0165 indexy pre r\u00f4zne ulo\u017een\u00e9 atrib\u00faty, efekt\u00edvne zabezpe\u010duje ukladanie ve\u013ek\u00fdch bin\u00e1rnych objektov, podporuje logovanie oper\u00e1ci\u00ed pri zmene a prid\u00e1van\u00ed \u00fadajov do DB, m\u00f4\u017ee pracova\u0165 v s\u00falade s paradigmatick\u00fdm Map\/Reduce, podporuje replik\u00e1ciu a vytv\u00e1ranie odoln\u00fdch konfigur\u00e1ci\u00ed.     <\/p>\n<p>Medzi zmenami vo FerretDB 1.0:  <\/p>\n<ul>\n<li class=\"l\"> Implementovan\u00e9 pr\u00edkazy createIndexes a dropIndexes na vytvorenie a odstr\u00e1nenie jedn\u00e9ho alebo viacer\u00fdch indexov k zbierke.\n<li class=\"l\"> Implementovan\u00fd pr\u00edkaz getMore na z\u00edskanie novej d\u00e1vky v\u00fdsledkov z\u00edskan\u00fdch vykonan\u00edm pr\u00edkazov, ktor\u00e9 vracaj\u00fa kurzor, ako napr\u00edklad find a aggregate.\n<li class=\"l\"> Pridan\u00e1 podpora agreguj\u00faceho oper\u00e1tora $sum na v\u00fdpo\u010det s\u00fa\u010dtu hodn\u00f4t skupiny.\n<li class=\"l\"> Pridan\u00e1 podpora oper\u00e1torov $limit a $skip na obmedzenie po\u010dtu a presko\u010denie dokumentov pri agreg\u00e1cii.\n<li class=\"l\"> Pridan\u00e1 podpora oper\u00e1tora $count na po\u010d\u00edtanie dokumentov pri agreg\u00e1cii.\n<li class=\"l\"> Pridan\u00e1 podpora oper\u00e1tora $unwind na rozdelenie pol\u00ed po\u013ea vo vstupn\u00fdch dokumentoch a vytvorenie zoznamu s jednotliv\u00fdm dokumentom pre ka\u017ed\u00fd prvok po\u013ea.\n<li class=\"l\"> Pridan\u00e1 \u010diasto\u010dn\u00e1 podpora pr\u00edkazov collStats, dbStats a dataSize na z\u00edskanie \u0161tatistiky o zbierke a DB, ako aj ve\u013ekosti d\u00e1t.            <\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58915\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 FerretDB 1.0, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0421\u0423\u0411\u0414 MongoDB \u043d\u0430 PostgreSQL \u0431\u0435\u0437 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. FerretDB \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440, \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a MongoDB \u0432 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a PostgreSQL, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c PostgreSQL \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u0412\u0435\u0440\u0441\u0438\u044f 1.0 \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a, \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0434\u043b\u044f \u043f\u043e\u0432\u0441\u0435\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-107696","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 FerretDB 1.0, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0421\u0423\u0411\u0414 MongoDB \u043d\u0430 PostgreSQL \u0431\u0435\u0437 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/news\/pervyj-stabilnyj-vypusk-ferretdb-realizaczii-mongodb-na-baze-subd-postgresql\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a FerretDB, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 MongoDB \u043d\u0430 \u0431\u0430\u0437\u0435 \u0421\u0423\u0411\u0414 PostgreSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 FerretDB 1.0, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0421\u0423\u0411\u0414 MongoDB \u043d\u0430 PostgreSQL \u0431\u0435\u0437 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/news\/pervyj-stabilnyj-vypusk-ferretdb-realizaczii-mongodb-na-baze-subd-postgresql\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-04-04T10:48:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-04-04T17:05:56+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Prv\u00e9 stabiln\u00e9 vydanie FerretDB, implement\u00e1cia MongoDB zalo\u017een\u00e1 na DB PostgreSQL | ProHoster","description":"Bol pridan\u00fd projekt FerretDB 1.0, ktor\u00fd umo\u017e\u0148uje nahradi\u0165 dokumentovo orientovan\u00fa DB MongoDB PostgreSQL bez zmien v k\u00f3de aplik\u00e1ci\u00ed.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/pervyj-stabilnyj-vypusk-ferretdb-realizaczii-mongodb-na-baze-subd-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a FerretDB, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 MongoDB \u043d\u0430 \u0431\u0430\u0437\u0435 \u0421\u0423\u0411\u0414 PostgreSQL | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 FerretDB 1.0, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0421\u0423\u0411\u0414 MongoDB \u043d\u0430 PostgreSQL \u0431\u0435\u0437 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.","og:url":"https:\/\/prohoster.info\/sk\/blog\/news\/pervyj-stabilnyj-vypusk-ferretdb-realizaczii-mongodb-na-baze-subd-postgresql","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-04-04T10:48:31+00:00","article:modified_time":"2023-04-04T17:05:56+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/107696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=107696"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/107696\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=107696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=107696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=107696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}