{"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\/da\/blog\/news\/vypusk-ferretdb-0-1-realizaczii-mongodb-na-baze-subd-postgresql","title":{"rendered":"Udgivelse af FerretDB 0.1, implementeringen af MongoDB baseret p\u00e5 PostgreSQL-databasen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Udgivet er version 0.1 af FerretDB-projektet (tidligere MangoDB), som g\u00f8r det muligt at erstatte den dokumentorienterede databasesystem MongoDB med PostgreSQL uden \u00e6ndringer i applikationskoden. FerretDB implementeres som en proxyserver, der overs\u00e6tter foresp\u00f8rgsler til MangoDB til SQL-foresp\u00f8rgsler til PostgreSQL, hvilket muligg\u00f8r brugen af PostgreSQL som det faktiske lagringssystem. Koden er skrevet i Go og distribueres under Apache 2.0-licensen.        <\/p>\n<p>Behovet for migration kan opst\u00e5 som f\u00f8lge af, at MongoDB overg\u00e5r til den ikke-frie licens SSPL, som er baseret p\u00e5 AGPLv3-licensen, men ikke er \u00e5ben, da den indeholder diskriminerende krav om levering under SSPL-licensen af b\u00e5de selve applikationskoden og kildekoden til alle komponenter involveret i levering af cloudtjeneste.     <\/p>\n<p>FerretDBs m\u00e5lgruppe omfatter brugere, der ikke benytter de avancerede funktioner i MongoDB i deres applikationer, men \u00f8nsker at anvende en fuldst\u00e6ndig \u00e5ben softwarestak. I den nuv\u00e6rende udviklingsfase underst\u00f8tter FerretDB kun en del af de funktioner, der oftest anvendes i typiske applikationer. I fremtiden planl\u00e6gges det at opn\u00e5 fuld kompatibilitet med drivere til MongoDB og give mulighed for at bruge FerretDB som en gennemsigtig erstatning for MongoDB.      <\/p>\n<p>Det skal bem\u00e6rkes, at MongoDB befinder sig i en niche mellem hurtige og skalerbare systemer, der opererer med data i n\u00f8gle\/v\u00e6rdi-format, og relationelle databasesystemer, som er funktionelle og brugervenlige til at formulere foresp\u00f8rgsler. MongoDB underst\u00f8tter opbevaring af dokumenter i et JSON-lignende format, har et ret fleksibelt sprog til at formulere foresp\u00f8rgsler, kan oprette indekser for forskellige gemte attributter, sikrer effektiv opbevaring af store bin\u00e6re objekter, underst\u00f8tter logning af operationer vedr\u00f8rende \u00e6ndringer og tilf\u00f8jelser af data i databasen, kan arbejde i overensstemmelse med Map\/Reduce-paradigmet og underst\u00f8tter replikation og opbygning af failover-konfigurationer.     <\/p>\n<p>I udgivelsen af FerretDB 0.1.0 er metoden til dataudtr\u00e6kning fra PostgreSQL blevet fuldst\u00e6ndig redesignet. Tidligere blev der for hver indkommende MongoDB-anmodning genereret \u00e9n SQL-anmodning til PostgreSQL, der brugte funktioner til at arbejde med JSON-formatet og udf\u00f8rte filtrering af resultaterne p\u00e5 PostgreSQL-siden. P\u00e5 grund af forskelle i semantikken af json-funktioner i PostgreSQL og MongoDB blev der observeret uoverensstemmelser i adf\u00e6rden ved sammenligning og sortering af forskellige typer. For at l\u00f8se dette problem hentes der nu et overfl\u00f8digt datas\u00e6t fra PostgreSQL, mens filtrering af resultatet udf\u00f8res p\u00e5 FerretDB-siden, hvilket g\u00f8r det muligt at efterligne MongoDB's adf\u00e6rd i de fleste situationer.     <\/p>\n<p>Prisen for \u00f8get kompatibilitet har v\u00e6ret et fald i ydeevnen, som man planl\u00e6gger at kompensere for i fremtidige versioner ved selektiv filtrering p\u00e5 FerretDB-siden af kun de foresp\u00f8rgsler, hvor der observeres adf\u00e6rdsforskelle. For eksempel kan foresp\u00f8rgslen &#171;db.collection.find({_id: &#8216;some-id-value&#8217;})&#187; behandles fuldt ud i PostgreSQL. Det prim\u00e6re m\u00e5l for projektet p\u00e5 dette udviklingstrin er at opn\u00e5 kompatibilitet med MongoDB, mens ydeevnen midlertidigt er sat p\u00e5 standby. Blandt de funktionelle \u00e6ndringer i den nye version bem\u00e6rkes st\u00f8tte til alle bitoperatorer, sammenligningsoperatoren &#171;$eq&#187;, samt operatorerne &#171;$elemMatch&#187; og &#171;$bitsAllClear&#187;.<br \/>\n<br \/>Kilde: <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.3 - 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\/da\/blog\/news\/vypusk-ferretdb-0-1-realizaczii-mongodb-na-baze-subd-postgresql\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Udgivelse af FerretDB 0.1, implementeringen af MongoDB baseret p\u00e5 PostgreSQL | ProHoster","description":"Udgivelsen af projektet FerretDB 0.1 (tidligere MangoDB) er offentliggjort, som muligg\u00f8r erstatning af den dokumentorienterede database MongoDB med PostgreSQL uden \u00e6ndringer i applikationskoden.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/vypusk-ferretdb-0-1-realizaczii-mongodb-na-baze-subd-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/103715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=103715"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/103715\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=103715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=103715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=103715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}