{"id":103715,"date":"2022-04-05T15:36:50","date_gmt":"2022-04-05T13:36:50","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-ferretdb-0-1-realizaczii-mongodb-na-baze-subd-postgresql"},"modified":"2022-04-05T15:36:50","modified_gmt":"2022-04-05T13:36:50","slug":"vypusk-ferretdb-0-1-realizaczii-mongodb-na-baze-subd-postgresql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-ferretdb-0-1-realizaczii-mongodb-na-baze-subd-postgresql","title":{"rendered":"FerretDB 0.1 v\u00e4ljaanne, MongoDB teostus PostgreSQL andmebaasi peal.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Avaldatud on FerretDB 0.1 (endine MangoDB) projekt, mis v\u00f5imaldab asendada dokumentide orienteeritud andmebaas MongoDB PostgreSQL-iga, ilma et oleks vaja rakenduste koodis muudatusi teha. FerretDB on rakendatud kui vaheserver, mis t\u00f5lgendab MangoDB p\u00e4ringud SQL-p\u00e4ringuteks PostgreSQL-ile, v\u00f5imaldades kasutada PostgreSQL-i tegeliku andmehoidla kui. Kood on kirjutatud Go keeles ja levitatakse Apache 2.0 litsentsi all.        <\/p>\n<p>Migreerimise vajadus v\u00f5ib tekkida seoses MongoDB \u00fcleminekuga mitteavalduslikule litsentsile SSPL, mis p\u00f5hineb AGPLv3 litsentsil, kuid pole avatud, kuna sisaldab diskrimineerivat n\u00f5uet pakkuda mitte ainult rakenduse l\u00e4htekoodi, vaid ka k\u00f5igi komponentide l\u00e4htekoodi, mis on seotud pilveteenuse osutamisega, SSPL litsentsi alusel.     <\/p>\n<p>FerretDB sihtr\u00fchmaks on kasutajad, kes ei kasuta oma rakendustes MongoDB t\u00e4iustatud v\u00f5imalusi, kuid soovivad kasutada t\u00e4ielikult avatud tarkvara. Praeguses arengu etapis toetab FerretDB vaid osa MongoDB funktsionaalsustest, mis on k\u00f5ige sagedamini rakendustes kasutusel. Tulevikus plaanitakse saavutada t\u00e4ielik \u00fchilduvus MongoDB draiveritega ja v\u00f5imaldada FerretDB-d kasutada MongoDB l\u00e4bipaistva asendusena.      <\/p>\n<p>Tuletame meelde, et MongoDB h\u00f5ivab ni\u0161i kiirete ja skaleeritavate s\u00fcsteemide vahel, mis t\u00f6\u00f6tlevad andmeid v\u00f5tme\/v\u00e4\u00e4rtuse formaadis, ning relatsiooniliste andmebaaside, mis on funktsionaalsed ja mugavad p\u00e4ringute koostamiseks. MongoDB toetab dokumentide salvestamist JSON-taolisel kujul, tal on piisavalt paindlik p\u00e4ringute koostamise keel, ta suudab luua indekseid erinevate salvestatud atribuutide jaoks, t\u00f5husalt haldab suurte binaarobjektide salvestamist, toetab tegevuste ajalugu andmete muutmisel ja lisamisel andmebaasi, v\u00f5ib t\u00f6\u00f6tada Map\/Reduce paradigmas, toetab replikatsiooni ja veakindlate konfiguratsioonide loomist.     <\/p>\n<p>FerretDB 0.1.0 versioonis on t\u00e4ielikult \u00fcmber kirjutatud andmete hankimise meetod PostgreSQL-ist. Varem moodustati iga tulnud MongoDB p\u00e4ringu jaoks \u00fcks SQL-p\u00e4ring PostgreSQL-ile, mis kasutas JSON vorminguga t\u00f6\u00f6tamiseks funktsioone ja teostas tulemuste filtreerimist PostgreSQL-i poolel. PostgreSQL ja MongoDB erinevuste t\u00f5ttu json-funktsioonide semantikas esines k\u00e4itumise mittevastavust erinevatel t\u00fc\u00fcpide v\u00f5rdlemisel ja sorteerimisel. Selle mure lahendamiseks hankitakse PostgreSQL-ist n\u00fc\u00fcd liigtulemused, samas kui tulemuste filtreerimine toimub FerretDB poolel, mis v\u00f5imaldas peegeldada MongoDB k\u00e4itumist enamikus olukordades.     <\/p>\n<p>\u00dchildumise suurendamise hind on olnud j\u00f5udluse v\u00e4henemine, mille tulevastes v\u00e4ljaannetes plaanitakse kompenseerida FerretDB poolel selektiivse filtreerimisega ainult nende p\u00e4ringute jaoks, kus k\u00e4itumine erineb. N\u00e4iteks p\u00e4ring \"db.collection.find({_id: 'some-id-value'})\" saab t\u00e4ielikult t\u00f6\u00f6deldud PostgreSQL-is. Projekti peamiseks eesm\u00e4rgiks selle arengu etapis on \u00fchilduvuse saavutamine MongoDB-ga, samas kui j\u00f5udlus t\u00f5ukub esialgu tagaplaanile. Uues versioonis on funktsionaalsete muudatuste hulgas all-bit operaatorite, v\u00f5rdlusoperaatori \"$eq\" ning operaatorite \"$elemMatch\" ja \"$bitsAllClear\" tugi.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=56971\">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 0.1 (\u0431\u044b\u0432\u0448\u0438\u0439 MangoDB), \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 MangoDB \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. \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 Apache 2.0. \u041f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c [&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-103715","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - 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 0.1 (\u0431\u044b\u0432\u0448\u0438\u0439 MangoDB), \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\/et\/blog\/news\/vypusk-ferretdb-0-1-realizaczii-mongodb-na-baze-subd-postgresql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\u0412\u044b\u043f\u0443\u0441\u043a FerretDB 0.1, \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 0.1 (\u0431\u044b\u0432\u0448\u0438\u0439 MangoDB), \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\/et\/blog\/news\/vypusk-ferretdb-0-1-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=\"2022-04-05T13:36:50+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-04-05T13:36:50+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\udd47FerretDB 0.1 v\u00e4ljaanne, MongoDB rakendus PostgreSQL andmebaasi baasil | ProHoster","description":"Avaldatud on FerretDB 0.1 projektiv\u00e4ljaanne (endine MangoDB), mis v\u00f5imaldab asendada dokumendip\u00f5hise andmebaasi MongoDB PostgreSQL-iga ilma rakenduste koodis muudatusi tegemata.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-ferretdb-0-1-realizaczii-mongodb-na-baze-subd-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\u0412\u044b\u043f\u0443\u0441\u043a FerretDB 0.1, \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 0.1 (\u0431\u044b\u0432\u0448\u0438\u0439 MangoDB), \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\/et\/blog\/news\/vypusk-ferretdb-0-1-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":"2022-04-05T13:36:50+00:00","article:modified_time":"2022-04-05T13:36:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"103715","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-04-05 13:37:13","updated":"2022-10-02 21:35:28","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/103715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=103715"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/103715\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=103715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=103715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=103715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}