{"id":2271,"date":"2016-06-22T05:05:31","date_gmt":"2016-06-22T05:05:30","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2271"},"modified":"2022-11-29T09:17:41","modified_gmt":"2022-11-29T17:17:41","slug":"couchbase-server-45s-new-sub-document","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-45s-new-sub-document\/","title":{"rendered":"A nova API de subdocumento do Couchbase Server 4.5"},"content":{"rendered":"<h2><a name=\"INTRODUCTION\"><\/a>Introdu\u00e7\u00e3o<\/h2>\n<p>O Couchbase Server 4.5 acaba de ser lan\u00e7ado, ent\u00e3o vamos test\u00e1-lo! Uma vis\u00e3o geral completa de todos os excelentes novos recursos pode ser encontrada em <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/introduction\/whats-new.html\">aqui<\/a>. Este artigo destacar\u00e1 o novo recurso da API Sub-Document. O que \u00e9 um subdocumento? O documento a seguir cont\u00e9m um subdocumento que pode ser acessado pelo campo \"tags\":<\/p>\n<h2><a name=\"SO_FAR\"><\/a>At\u00e9 o momento<\/h2>\n<p>Nas vers\u00f5es anteriores do Couchbase (&lt;4.5), a atualiza\u00e7\u00e3o de um documento precisava seguir o seguinte padr\u00e3o:<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>Obter o documento inteiro que precisa ser atualizado<\/li>\n<li>Atualizar os documentos no lado do cliente (por exemplo, atualizando apenas algumas propriedades)<\/li>\n<li>Escreva todo o documento de volta<\/li>\n<\/ul>\n<\/div>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a style=\"margin-left: 1em;margin-right: 1em\" href=\"https:\/\/4.bp.blogspot.com\/-cKS2iQ2eQ2g\/VzWpH7A1y-I\/AAAAAAAAFOY\/2dMH7CuXHRUSijpAL4noT3ZMJlzq5_i4wCLcB\/s1600\/pingpong.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/4.bp.blogspot.com\/-cKS2iQ2eQ2g\/VzWpH7A1y-I\/AAAAAAAAFOY\/2dMH7CuXHRUSijpAL4noT3ZMJlzq5_i4wCLcB\/s320\/pingpong.png\" width=\"320\" height=\"301\" border=\"0\" \/><\/a><\/div>\n<p>Um exemplo simples de c\u00f3digo Java seria:<\/p>\n<h2><a name=\"NOW_WITH\"><\/a>Agora com 4,5<\/h2>\n<p>A nova API de subdocumento \u00e9 um recurso do lado do servidor que permite que voc\u00ea (surpresa, surpresa...) obtenha ou modifique apenas um subdocumento de um documento existente no Couchbase. As vantagens s\u00e3o:<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>\u00a0Melhor usabilidade no lado do cliente\n<ul>\n<li>As opera\u00e7\u00f5es CRUD podem ser realizadas com base em caminhos<\/li>\n<li>Nos casos em que a modifica\u00e7\u00e3o n\u00e3o depende do valor anterior, voc\u00ea pode atualizar um documento sem a necessidade de busc\u00e1-lo antecipadamente<\/li>\n<li>Voc\u00ea pode manter refer\u00eancias importantes entre os documentos com mais facilidade<\/li>\n<\/ul>\n<\/li>\n<li>\u00a0Desempenho aprimorado\n<ul>\n<li>Ele economiza a largura de banda da rede e tem uma lat\u00eancia melhor, pois n\u00e3o \u00e9 necess\u00e1rio transferir todo o documento pela rede<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p>A API de subdocumento tamb\u00e9m permite que voc\u00ea obtenha ou modifique valores internos ou matrizes de um (sub)documento.<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li><b>Opera\u00e7\u00f5es de pesquisa:<\/b> Consulta o documento para um caminho espec\u00edfico, por exemplo, GET, EXISTS<\/li>\n<li><b>Opera\u00e7\u00f5es de muta\u00e7\u00e3o:<\/b>\u00a0Modificar um ou v\u00e1rios caminhos em um documento, por exemplo, UPSERT, ARRAY_APPEND, COUNTER<\/li>\n<\/ul>\n<\/div>\n<p>Uma descri\u00e7\u00e3o mais detalhada da API pode ser encontrada na documenta\u00e7\u00e3o do Couchbase:\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/sdk\/subdocument-operations.html\">https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/sdk\/subdocument-operations.html<\/a>.<\/p>\n<p>A atualiza\u00e7\u00e3o de um documento agora pode seguir o seguinte padr\u00e3o:<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>Atualize diretamente uma propriedade ou subdocumento especificando o caminho no qual ele pode ser encontrado<\/li>\n<\/ul>\n<\/div>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a style=\"margin-left: 1em;margin-right: 1em\" href=\"https:\/\/4.bp.blogspot.com\/-RQawqeSbz10\/VzWoi_xkFpI\/AAAAAAAAFOQ\/mSBToE0krxAgJBPXscpsqxTvPY0kYLr_gCLcB\/s1600\/ping.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/4.bp.blogspot.com\/-RQawqeSbz10\/VzWoi_xkFpI\/AAAAAAAAFOQ\/mSBToE0krxAgJBPXscpsqxTvPY0kYLr_gCLcB\/s320\/ping.png\" width=\"320\" height=\"284\" border=\"0\" \/><\/a><\/div>\n<p>Nosso exemplo em Java agora seria simplificado para:<\/p>\n<h2><a name=\"OPTIMISTIC_LOCKING\"><\/a>\"Travamento\" otimista<\/h2>\n<p>O Couchbase Server n\u00e3o tem um gerenciador de transa\u00e7\u00f5es embutido, mas se voc\u00ea falar sobre o comportamento transacional, os requisitos geralmente s\u00e3o menores do que o que um gerenciador de transa\u00e7\u00f5es ACID forneceria (por exemplo, lidar apenas com acesso simult\u00e2neo em vez de ser totalmente compat\u00edvel com ACID). No Couchbase, um documento tem um valor chamado C(ompare) A(nd) S(wap). Esse valor \u00e9 alterado assim que um documento \u00e9 modificado no lado do servidor.<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>Obter um documento com um valor CAS espec\u00edfico<\/li>\n<li>Alterar as propriedades no lado do cliente<\/li>\n<li>Tente substituir o documento passando o valor CAS antigo. Se o valor CAS tiver sido alterado no servidor, voc\u00ea saber\u00e1 que outra pessoa modificou o documento nesse intervalo e, portanto, poder\u00e1 tentar aplicar novamente suas altera\u00e7\u00f5es.<\/li>\n<\/ul>\n<\/div>\n<p>Portanto, o CAS \u00e9 usado para uma abordagem de bloqueio otimista. Ela \u00e9 otimista porque voc\u00ea espera poder aplicar suas altera\u00e7\u00f5es e lidar com o caso de isso n\u00e3o ser poss\u00edvel porque outra pessoa o alterou antes. Uma abordagem pessimista seria bloquear o documento antecipadamente para que ningu\u00e9m mais possa escrev\u00ea-lo at\u00e9 que esse bloqueio seja liberado novamente.<\/p>\n<p>Agora voc\u00ea pode fazer a seguinte pergunta:<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>O que acontece se eu modificar um subdocumento e outra pessoa atualizar o mesmo ou outro subdocumento do mesmo documento?<\/li>\n<\/ul>\n<\/div>\n<p>As opera\u00e7\u00f5es de subdocumento s\u00e3o at\u00f4micas. Atomicidade significa tudo ou nada. Portanto, se voc\u00ea atualizar um subdocumento sem recuperar uma mensagem de erro, poder\u00e1 ter certeza de que a atualiza\u00e7\u00e3o foi realizada no lado do servidor. Isso significa que, se cinco clientes estiverem anexando um elemento a uma matriz incorporada, voc\u00ea pode ter certeza de que todos os cinco valores foram anexados. No entanto, a atomicidade n\u00e3o significa consist\u00eancia em rela\u00e7\u00e3o ao estado. Portanto, n\u00e3o est\u00e1 lhe informando sobre conflitos. Portanto, se dois clientes estiverem atualizando o mesmo subdocumento, ambas as atualiza\u00e7\u00f5es ser\u00e3o executadas, mas, para descobrir se houve um conflito em rela\u00e7\u00e3o a essas atualiza\u00e7\u00f5es, voc\u00ea ainda precisar\u00e1 do valor CAS (ou usar <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/optimistic-or-pessimistic-locking-which-one-should-you-pick\/\">bloqueio pessimista<\/a> em vez disso). No entanto, se voc\u00ea tiver certeza de que os clientes atuam em subdocumentos diferentes, saber\u00e1 que n\u00e3o haver\u00e1 conflito e, portanto, o valor CAS n\u00e3o ser\u00e1 necess\u00e1rio.<\/p>\n<h2><\/h2>\n<h2><a name=\"SUMMARY\"><\/a>Resumo<\/h2>\n<p>A nova API Sub-Documento \u00e9 um dos novos recursos excelentes do Couchbase 4.5. Ela permite que voc\u00ea n\u00e3o precise buscar o documento inteiro para ler\/modificar apenas uma parte dele. Isso significa uma melhor usabilidade do ponto de vista do cliente. Uma das principais vantagens \u00e9 que ele melhora o desempenho, especialmente se estiver trabalhando com documentos maiores.<\/p>","protected":false},"excerpt":{"rendered":"<p>Introduction Couchbase Server 4.5 has just been released, so let&#8217;s try it out! A complete overview of all the great new features can be found here. This article will highlight the new Sub-Document API feature.\u00a0What&#8217;s a sub-document? The following document [&hellip;]<\/p>","protected":false},"author":72,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1819],"tags":[],"ppma_author":[9045],"class_list":["post-2271","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-data-modeling"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Server 4.5&#039;s new Sub-Document API - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-45s-new-sub-document\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Server 4.5&#039;s new Sub-Document API\" \/>\n<meta property=\"og:description\" content=\"Introduction Couchbase Server 4.5 has just been released, so let&#8217;s try it out! A complete overview of all the great new features can be found here. This article will highlight the new Sub-Document API feature.\u00a0What&#8217;s a sub-document? The following document [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-45s-new-sub-document\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-22T05:05:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-29T17:17:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Maier, Principal Solutions Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Maier, Principal Solutions Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/\"},\"author\":{\"name\":\"David Maier, Principal Solutions Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/15978b2d7368d7370affa35805362762\"},\"headline\":\"Couchbase Server 4.5&#8217;s new Sub-Document API\",\"datePublished\":\"2016-06-22T05:05:30+00:00\",\"dateModified\":\"2022-11-29T17:17:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/\"},\"wordCount\":745,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\",\"Data Modeling\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/\",\"name\":\"Couchbase Server 4.5's new Sub-Document API - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-06-22T05:05:30+00:00\",\"dateModified\":\"2022-11-29T17:17:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Server 4.5&#8217;s new Sub-Document API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/15978b2d7368d7370affa35805362762\",\"name\":\"David Maier, Principal Solutions Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d5ab8e7712bc66867d55a3b27bab2115\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29ec7d26b5739cb809b6a87bc3ea5f0a09bcafd5a54e1d90c636cfb727a990bf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29ec7d26b5739cb809b6a87bc3ea5f0a09bcafd5a54e1d90c636cfb727a990bf?s=96&d=mm&r=g\",\"caption\":\"David Maier, Principal Solutions Engineer, Couchbase\"},\"description\":\"David Maier is a Principal Solutions Engineer at Couchbase. David is a primary technical contact person for the DACH region for Couchbase related subjects, Pre-Sales, Requirements Analysis, Architectural Reviews, Customer Presentations, PoC-s, Development of Demo Applications etc\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/david-maier\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Server 4.5's new Sub-Document API - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-45s-new-sub-document\/","og_locale":"pt_BR","og_type":"article","og_title":"Couchbase Server 4.5's new Sub-Document API","og_description":"Introduction Couchbase Server 4.5 has just been released, so let&#8217;s try it out! A complete overview of all the great new features can be found here. This article will highlight the new Sub-Document API feature.\u00a0What&#8217;s a sub-document? The following document [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-45s-new-sub-document\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-06-22T05:05:30+00:00","article_modified_time":"2022-11-29T17:17:41+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"David Maier, Principal Solutions Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Maier, Principal Solutions Engineer, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/"},"author":{"name":"David Maier, Principal Solutions Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/15978b2d7368d7370affa35805362762"},"headline":"Couchbase Server 4.5&#8217;s new Sub-Document API","datePublished":"2016-06-22T05:05:30+00:00","dateModified":"2022-11-29T17:17:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/"},"wordCount":745,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server","Data Modeling"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/","name":"Couchbase Server 4.5's new Sub-Document API - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-06-22T05:05:30+00:00","dateModified":"2022-11-29T17:17:41+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Server 4.5&#8217;s new Sub-Document API"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/15978b2d7368d7370affa35805362762","name":"David Maier, engenheiro de solu\u00e7\u00f5es principal, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d5ab8e7712bc66867d55a3b27bab2115","url":"https:\/\/secure.gravatar.com\/avatar\/29ec7d26b5739cb809b6a87bc3ea5f0a09bcafd5a54e1d90c636cfb727a990bf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29ec7d26b5739cb809b6a87bc3ea5f0a09bcafd5a54e1d90c636cfb727a990bf?s=96&d=mm&r=g","caption":"David Maier, Principal Solutions Engineer, Couchbase"},"description":"David Maier is a Principal Solutions Engineer at Couchbase. David is a primary technical contact person for the DACH region for Couchbase related subjects, Pre-Sales, Requirements Analysis, Architectural Reviews, Customer Presentations, PoC-s, Development of Demo Applications etc","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/david-maier\/"}]}},"authors":[{"term_id":9045,"user_id":72,"is_guest":0,"slug":"david-maier","display_name":"David Maier, Principal Solutions Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/29ec7d26b5739cb809b6a87bc3ea5f0a09bcafd5a54e1d90c636cfb727a990bf?s=96&d=mm&r=g","author_category":"","last_name":"Maier","first_name":"David","job_title":"","user_url":"","description":"David Maier \u00e9 engenheiro de solu\u00e7\u00f5es principal da Couchbase. David \u00e9 a principal pessoa de contato t\u00e9cnico na regi\u00e3o DACH para assuntos relacionados ao Couchbase, pr\u00e9-vendas, an\u00e1lise de requisitos, revis\u00f5es de arquitetura, apresenta\u00e7\u00f5es para clientes, PoC-s, desenvolvimento de aplicativos de demonstra\u00e7\u00e3o etc"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2271"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2271\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2271"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}