{"id":30666,"date":"2019-10-31T21:36:48","date_gmt":"2019-10-31T18:36:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/byla-la-mongodb-voobshhe-pravilnym-vyborom\/"},"modified":"2019-10-31T21:36:48","modified_gmt":"2019-10-31T18:36:48","slug":"byla-la-mongodb-voobshhe-pravilnym-vyborom","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/byla-la-mongodb-voobshhe-pravilnym-vyborom","title":{"rendered":"Was MongoDB truly the right choice?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Recently, I learned that <noindex><a rel=\"nofollow\" href=\"https:\/\/www.redhat.com\/en\/blog\/red-hat-satellite-standardize-postgresql-backend\">Red Hat is removing support for MongoDB from Satellite<\/a><\/noindex> (reportedly due to licensing changes). This made me think, as I\u2019ve seen a lot of articles over the past few years claiming how terrible MongoDB is and that no one should ever use it. But during this time, MongoDB has evolved into a much more mature product. What happened? Is all the hate really due to marketing missteps with the new DBMS? Or are people just using MongoDB inappropriately?<\/p>\n<p>If you think I\u2019m defending MongoDB, please read the <noindex><a rel=\"nofollow\" href=\"#1\">disclaimer<\/a><\/noindex> at the end of the article.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>New Trend<\/h1>\n<p>\nI\u2019ve been in the software industry longer than I care to admit, but I have still only experienced a fraction of the trends that have struck our field. I\u2019ve witnessed the rise of 4GL, AOP, Agile, SOA, Web 2.0, AJAX, blockchain\u2026 the list goes on. Every year, new trends emerge. Some fade quickly, while others fundamentally change software development methods.<\/p>\n<p>Around each new trend, a certain public excitement is generated: people either jump on the bandwagon themselves or see the noise created by others and follow the crowd. This process was codified by Gartner in the <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Hype_cycle\">hype cycle<\/a><\/noindex>. Although controversial, this chart roughly describes what happens with technologies before they ultimately become useful.<\/p>\n<p>Yet every once in a while, a new innovation appears (or experiences a resurgence, as is the case here), driven solely by one specific implementation. In the case of NoSQL, the hype was heavily influenced by the emergence and rapid ascent of MongoDB. MongoDB didn\u2019t start this trend; in fact, major internet companies faced challenges in handling large volumes of data that led to the revival of non-relational databases. The movement began with projects like Google\u2019s Bigtable and Facebook\u2019s Cassandra, but MongoDB became the most well-known and accessible NoSQL database implementation available to most developers.<\/p>\n<p><i>Note: You might think I\u2019m conflating document databases with columnar databases, key\/value stores, or any of the numerous other types of data storage that fall under the general definition of NoSQL. And you\u2019d be right. But at the time, chaos ruled. Everyone was obsessed with NoSQL; it became <b>absolutely<\/b> necessary, although many did not see differences in different technologies. For many, MongoDB has become <b>synonymous<\/b> with NoSQL.<\/i><\/p>\n<p>And developers jumped at the opportunity. The idea of a schema-less database that magically scales to solve any problem was quite enticing. Around 2014, it seemed like everywhere that a relational database like MySQL, Postgres, or SQL Server was used a year ago, MongoDB databases were being deployed instead. When asked why, you could get responses ranging from the mundane \"it's the scalability of the web\" to the more thoughtful \"my data is very loosely structured and fits nicely into a schema-less database.\"<\/p>\n<p>It's important to remember that MongoDB and document databases, in general, address a number of problems with traditional relational databases:<\/p>\n<ul>\n<li><b>Strict schema<\/b>: with a relational database, if you have dynamically generated data, you are forced to either create a bunch of random \"different\" data columns, cram in data blobs, or use a configuration <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Entity%E2%80%93attribute%E2%80%93value_model\">EAV<\/a><\/noindex>\u2026 which has significant downsides.\n<\/li>\n<li><b>Scaling difficulties<\/b>: if the data is so much that it doesn\u2019t fit on one server, MongoDB offered mechanisms to scale it across multiple machines.\n<\/li>\n<li><b>Complex schema modifications<\/b>: no migrations! In a relational database, changing the database structure can become a huge problem (especially when there\u2019s a lot of data). MongoDB greatly simplified this process, making it so easy that you can simply update the schema on the fly and move forward quickly.\n<\/li>\n<li><b>Write performance<\/b>: MongoDB's performance was good, especially with proper tuning. Even the out-of-the-box MongoDB configuration, often criticized, demonstrated some impressive performance metrics.<\/li>\n<\/ul>\n<p><\/p>\n<h1>All the risks are on you.<\/h1>\n<p>\nThe potential benefits of MongoDB were enormous, especially for certain classes of problems. Reading the list above without understanding the context and lacking experience may give the impression that MongoDB is indeed a revolutionary DBMS. The only issue was that the aforementioned advantages came with a number of caveats, some of which are listed below.<\/p>\n<p>Fairness to say, no one at 10gen\/MongoDB Inc. will claim that what follows is untrue; these are simply compromises.<\/p>\n<ul>\n<li><b>Loss of Transactions<\/b>: Transactions are a core feature of many relational databases (not all, but most). Transactionality means you can perform multiple operations atomically and ensure that data remains consistent. Of course, with a NoSQL database, transactionality might be within a single document, or you can use two-phase commits to achieve transactional semantics. However, you will have to implement this functionality yourself... which can be a complex and labor-intensive task. Often, you don't realize the issues until you see data in the database entering invalid states because it's impossible to guarantee the atomicity of operations. <b>Note: Many have informed me that transactions were introduced in MongoDB 4.0 last year, but with several limitations. The takeaway from the article remains the same: Evaluate how well the technology meets your needs.<\/b>\n<\/li>\n<li><b>Loss of Relational Integrity (Foreign Keys)<\/b>: If your data has relationships, you will need to enforce them in the application. Having a database that respects these relationships will offload significant work from the application and, consequently, from your programmers.\n<\/li>\n<li><b>Inability to Enforce Data Structure<\/b>: Strict schemas can sometimes be a huge issue, but they are also a powerful mechanism for good data structuring when used correctly. Document databases like MongoDB provide incredible schema flexibility, but this flexibility removes the responsibility for keeping the data clean. If you don't take care of it, you will ultimately have to write a lot of code in the application to account for the data stored in a form that you do not expect. As often said in our company, Simple Thread\u2026 applications will eventually be rewritten, but data will live forever. <b>Note: MongoDB supports schema validation; it is useful but does not provide the same guarantees as a relational database. First of all, adding or modifying schema validation does not affect existing data in the collection. You must ensure that you update the data according to the new schema yourselves. Decide if this is sufficient for your needs.<\/b>\n<\/li>\n<li><b>Proprietary query language \/ loss of tool ecosystem<\/b>: the emergence of SQL was an absolute revolution, and since then nothing has changed. It is an incredibly powerful language, but also quite complex. The need to construct database queries in a new language, consisting of JSON fragments, is seen as a significant step back by those with SQL experience. There is a whole universe of tools that interact with SQL databases: from IDEs to reporting tools. Transitioning to a database that does not support SQL means that you cannot use most of these tools or you need to translate the data into SQL to use it, which can be more complicated than you think.<\/li>\n<\/ul>\n<p>\nMany developers who turned to MongoDB did not fully understand the trade-offs and often dove in headfirst, setting it up as their primary data store. After such a commitment, it was often incredibly difficult to revert.<\/p>\n<h1>What could have been done differently?<\/h1>\n<p>\nNot everyone jumped in headfirst and hit rock bottom. But quite a few projects installed MongoDB in places where it simply did not fit\u2014and they will have to live with it for many years. If these organizations had taken some time and methodically considered their technology choices, many would have made a different decision.<\/p>\n<p>How to choose the right technology? There were several attempts to create a systematic framework for assessing technologies, such as <noindex><a rel=\"nofollow\" href=\"http:\/\/www.wohlin.eu\/spi96.pdf\">\"Framework for Technology Implementation in Software Organizations\"<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/pdfs.semanticscholar.org\/4268\/30dd5dd944d3b75ec56b2a3b151c18afbaf9.pdf\">\"Framework for Evaluating Software Technologies\"<\/a><\/noindex>, but I think that is overly complicated.<\/p>\n<p>Many technologies can be reasonably assessed by asking just two fundamental questions. <b>The problem lies in finding people who can responsibly answer them, spending time to find answers and without prejudice.<\/b><\/p>\n<blockquote><p>If you are not facing a particular problem, you do not need a new tool. Point.<\/p><\/blockquote>\n<p><\/p>\n<h1>Question 1: What problems am I trying to solve?<\/h1>\n<p>\nIf you are not facing any problem, you don\u2019t need a new tool. Period. There\u2019s no need to look for a solution and then invent a problem. If you haven't encountered an issue that the new technology solves significantly better than your existing technology, then there's nothing to discuss. If you\u2019re considering this technology just because you\u2019ve seen others use it, think about the problems they face and ask yourself if you have similar issues. It\u2019s easy to adopt technology simply because others are using it; the challenge lies in understanding whether you\u2019re facing the same problems.<\/p>\n<h1>Question 2: What am I giving up?<\/h1>\n<p>\nThis is definitely a tougher question because it requires digging deep and gaining a good understanding of both the old and new technologies. Sometimes, you can\u2019t truly understand the new one until you\u2019ve built something with it, or until you have someone on your team who has that experience.<\/p>\n<p>If you lack both, it makes sense to think about the minimal possible investments required to ascertain the value of this tool. And if you make the investments, how difficult will it be to reverse the decision?<\/p>\n<h1>People always mess things up<\/h1>\n<p>\nAs you try to answer these questions as objectively as possible, remember one thing: you\u2019ll have to contend with human nature. There are a number of cognitive biases that need to be overcome to effectively evaluate technology. Here are just a few:<\/p>\n<ul>\n<li><b><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bandwagon_effect\">The Bandwagon Effect<\/a><\/noindex><\/b> \u2014 everyone knows about it, yet it\u2019s still hard to fight. Just make sure the technology truly meets your actual needs.\n<\/li>\n<li><b><noindex><a rel=\"nofollow\" href=\"https:\/\/mindmodeling.org\/cogsci2015\/papers\/0177\/index.html\">The Novelty Effect<\/a><\/noindex><\/b> \u2014 many developers tend to underestimate the technologies they've worked with for a long time and overestimate the benefits of new technology. This cognitive bias affects not just programmers; everyone is susceptible.\n<\/li>\n<li><b><noindex><a rel=\"nofollow\" href=\"https:\/\/pigeon.psy.tufts.edu\/avc\/dittrich\/fepef.htm\">The Positive Characteristics Effect<\/a><\/noindex> \u2014 we tend to focus on what is present and overlook what is missing. This can lead to chaos in combination with the novelty effect, as you not only inherently overvalue the new technology but also ignore its shortcomings.<\/b>.<\/li>\n<\/ul>\n<p>\nAn objective assessment is not easy to achieve, but understanding the fundamental cognitive biases will help make more rational decisions.<\/p>\n<h1>Summary<\/h1>\n<p>\nWhen an innovation arises, it is important to cautiously address two questions:<\/p>\n<ul>\n<li>Does this tool solve a real problem?\n<\/li>\n<li>Do we understand the trade-offs well?<\/li>\n<\/ul>\n<p>\nIf you cannot confidently answer these two questions, take a few steps back and think.<\/p>\n<p>So was MongoDB actually the right choice? Of course, yes; like most engineering technologies, it depends on many factors. Among those who answered these two questions, many have benefited from MongoDB and continue to do so. Those who did not, I hope, learned a valuable and not too painful lesson about navigating the hype cycle.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"1\"><\/a><\/noindex><\/p>\n<h1>Disclaimer<\/h1>\n<p>\nI want to clarify that I feel neither love nor hatred towards MongoDB. It's just that we did not have any issues for which MongoDB was the best solution. I know that 10gen\/MongoDB Inc. initially acted quite boldly by setting unsafe defaults and promoting MongoDB everywhere (especially at hackathons) as a universal solution for any type of data. That was likely a poor decision. But it supports the approach described here: these issues could be identified very quickly even with a superficial evaluation of the technology.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446180\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0443\u0437\u043d\u0430\u043b, \u0447\u0442\u043e Red Hat \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 MongoDB \u0438\u0437 Satellite (\u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0438\u0437-\u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438). \u042d\u0442\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u043c\u0435\u043d\u044f \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u044f \u0432\u0438\u0434\u0435\u043b \u043a\u0443\u0447\u0443 \u0441\u0442\u0430\u0442\u0435\u0439, \u043a\u0430\u043a \u0443\u0436\u0430\u0441\u043d\u0430 MongoDB \u0438 \u0447\u0442\u043e \u043d\u0438\u043a\u0442\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u041d\u043e \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f MongoDB \u0441\u0442\u0430\u043b\u0430 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0437\u0440\u0435\u043b\u044b\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c. \u0427\u0442\u043e \u0436\u0435 \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c? \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u0432\u0441\u044f [&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":[688],"tags":[],"class_list":["post-30666","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0443\u0437\u043d\u0430\u043b, \u0447\u0442\u043e Red Hat \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 MongoDB \u0438\u0437 Satellite (\u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0438\u0437-\u0437\u0430.\" \/>\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\/en\/blog\/administrirovanie\/byla-la-mongodb-voobshhe-pravilnym-vyborom\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\u0411\u044b\u043b\u0430 \u043b\u0430 MongoDB \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0443\u0437\u043d\u0430\u043b, \u0447\u0442\u043e Red Hat \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 MongoDB \u0438\u0437 Satellite (\u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0438\u0437-\u0437\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/byla-la-mongodb-voobshhe-pravilnym-vyborom\" \/>\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=\"2019-10-31T18:36:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:36:48+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\udd47So was MongoDB actually the right choice? | ProHoster","description":"I recently learned that Red Hat is removing support for MongoDB from Satellite (apparently due to.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/byla-la-mongodb-voobshhe-pravilnym-vyborom","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\u0411\u044b\u043b\u0430 \u043b\u0430 MongoDB \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c? | ProHoster","og:description":"\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0443\u0437\u043d\u0430\u043b, \u0447\u0442\u043e Red Hat \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 MongoDB \u0438\u0437 Satellite (\u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0438\u0437-\u0437\u0430.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/byla-la-mongodb-voobshhe-pravilnym-vyborom","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":"2019-10-31T18:36:48+00:00","article:modified_time":"2019-10-31T18:36:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30666","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":null,"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":"2026-01-21 02:22:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:31:23","updated":"2026-01-21 02:22:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/30666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=30666"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/30666\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=30666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=30666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=30666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}