{"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\/es\/couchbase-server-45s-new-sub-document\/","title":{"rendered":"Nueva API de subdocumentos de Couchbase Server 4.5"},"content":{"rendered":"<h2><a name=\"INTRODUCTION\"><\/a>Introducci\u00f3n<\/h2>\n<p>Couchbase Server 4.5 acaba de ser lanzado, \u00a1as\u00ed que vamos a probarlo! Una visi\u00f3n completa de todas las nuevas caracter\u00edsticas se puede encontrar <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/introduction\/whats-new.html\">aqu\u00ed<\/a>. En este art\u00edculo se destaca la nueva funci\u00f3n API de subdocumentos. \u00bfQu\u00e9 es un subdocumento? El siguiente documento contiene un subdocumento accesible a trav\u00e9s del campo \"etiquetas\":<\/p>\n<h2><a name=\"SO_FAR\"><\/a>Hasta ahora<\/h2>\n<p>Con versiones anteriores de Couchbase (&lt;4.5) la actualizaci\u00f3n de un documento ten\u00eda que seguir el siguiente patr\u00f3n:<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>Obtener todo el documento que debe actualizarse<\/li>\n<li>Actualizar los documentos en el lado del cliente (por ejemplo, actualizando s\u00f3lo algunas propiedades).<\/li>\n<li>Volver a escribir todo el documento<\/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>Un ejemplo sencillo de c\u00f3digo Java ser\u00eda<\/p>\n<h2><a name=\"NOW_WITH\"><\/a>Ahora con 4,5<\/h2>\n<p>El nuevo sub-documento API es una caracter\u00edstica del lado del servidor que le permite (sorpresa, sorpresa ...) s\u00f3lo obtener o modificar un sub-documento de un documento existente en Couchbase. Las ventajas son:<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>\u00a0Mayor facilidad de uso para el cliente\n<ul>\n<li>Las operaciones CRUD pueden realizarse bas\u00e1ndose en rutas<\/li>\n<li>En los casos en que la modificaci\u00f3n no dependa del valor anterior, puede actualizar un documento sin necesidad de recuperarlo previamente.<\/li>\n<li>Puede mantener m\u00e1s f\u00e1cilmente las referencias clave entre documentos<\/li>\n<\/ul>\n<\/li>\n<li>\u00a0Mejora del rendimiento\n<ul>\n<li>Ahorra ancho de banda y mejora la latencia, ya que no es necesario transferir todo el documento por cable.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p>La API de subdocumentos tambi\u00e9n permite obtener o modificar valores internos o matrices de un (sub)documento.<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li><b>Operaciones de b\u00fasqueda:<\/b> Consulta el documento para una ruta espec\u00edfica, por ejemplo GET, EXISTS<\/li>\n<li><b>Operaciones de mutaci\u00f3n:<\/b>\u00a0Modificar una o varias rutas de un documento, por ejemplo UPSERT, ARRAY_APPEND, COUNTER<\/li>\n<\/ul>\n<\/div>\n<p>Puede encontrar una descripci\u00f3n m\u00e1s detallada de la API en la documentaci\u00f3n de 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>La actualizaci\u00f3n de un documento puede seguir ahora el siguiente patr\u00f3n:<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>Actualizar directamente una propiedad o un subdocumento especificando la ruta en la que se encuentra<\/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>Nuestro ejemplo Java se simplificar\u00eda ahora a:<\/p>\n<h2><a name=\"OPTIMISTIC_LOCKING\"><\/a>Optimista \"bloqueo\"<\/h2>\n<p>Couchbase Server no tiene un gestor de transacciones incorporado, pero si hablamos de comportamiento transaccional, los requisitos son a menudo menores de lo que un gestor de transacciones ACID proporcionar\u00eda (por ejemplo, manejar s\u00f3lo el acceso concurrente en lugar de ser totalmente compatible con ACID). En Couchbase un documento tiene un valor llamado C(ompare) A(nd) S(wap). Este valor cambia tan pronto como un documento es modificado en el lado del servidor.<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>Obtener un documento con un valor CAS espec\u00edfico<\/li>\n<li>Cambiar las propiedades en el lado del cliente<\/li>\n<li>Intente reemplazar el documento pasando el valor CAS antiguo. Si el valor CAS ha cambiado en el servidor, sabr\u00e1 que alguien ha modificado el documento y podr\u00e1 volver a intentar aplicar los cambios.<\/li>\n<\/ul>\n<\/div>\n<p>As\u00ed que CAS se utiliza para un enfoque de bloqueo optimista. Es optimista porque esperas poder aplicar tus cambios y manejas el caso de que esto no fuera posible porque alguien m\u00e1s lo cambi\u00f3 antes. Un enfoque pesimista ser\u00eda bloquear el documento por adelantado y que nadie m\u00e1s pueda escribirlo hasta que este bloqueo se libere de nuevo.<\/p>\n<p>Ahora podr\u00eda plantearse la siguiente pregunta:<\/p>\n<div style=\"padding: 20px\">\n<ul>\n<li>\u00bfQu\u00e9 ocurre si modifico un subdocumento y otra persona actualiza el mismo u otro subdocumento del mismo documento?<\/li>\n<\/ul>\n<\/div>\n<p>Las operaciones con subdocumentos son at\u00f3micas. Atomicidad significa todo o nada. Por lo tanto, si actualiza un subdocumento sin obtener un mensaje de error, puede estar seguro de que la actualizaci\u00f3n se ha realizado en el servidor. Esto significa que si 5 clientes est\u00e1n a\u00f1adiendo un elemento a un array incrustado, entonces puedes estar seguro de que los 5 valores fueron a\u00f1adidos. Sin embargo, la atomicidad no significa consistencia con respecto al estado. As\u00ed que no te dice nada sobre conflictos. As\u00ed, si dos clientes actualizan el mismo subdocumento, ambas actualizaciones se llevar\u00e1n a cabo, pero para averiguar si existe un conflicto con respecto a estas actualizaciones, a\u00fan se necesitar\u00e1 el valor CAS (o utilizar el m\u00e9todo <a href=\"https:\/\/www.couchbase.com\/blog\/es\/optimistic-or-pessimistic-locking-which-one-should-you-pick\/\">cierre pesimista<\/a> en su lugar). Sin embargo, si est\u00e1 seguro de que los clientes act\u00faan sobre distintos subdocumentos, sabr\u00e1 que no habr\u00e1 conflicto y entonces el valor CAS no ser\u00e1 necesario.<\/p>\n<h2><\/h2>\n<h2><a name=\"SUMMARY\"><\/a>Resumen<\/h2>\n<p>La nueva API Sub-Document es una de las nuevas grandes caracter\u00edsticas de Couchbase 4.5. Te permite evitar tener que buscar todo el documento para leer\/modificar s\u00f3lo una parte de \u00e9l. Esto significa una mejor usabilidad desde el punto de vista del cliente. Una de las principales ventajas es que mejora el rendimiento, especialmente si se trabaja con documentos m\u00e1s grandes.<\/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 v25.8 (Yoast SEO v25.8) - 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\/es\/couchbase-server-45s-new-sub-document\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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\/es\/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\/es\/couchbase-server-45s-new-sub-document\/","og_locale":"es_MX","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\/es\/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":"es","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":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-server-45s-new-sub-document\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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, Ingeniero Principal de Soluciones, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@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\/es\/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 es Ingeniero Principal de Soluciones en Couchbase. David es la persona de contacto t\u00e9cnico principal para la regi\u00f3n DACH para temas relacionados con Couchbase, preventa, an\u00e1lisis de requisitos, revisiones de arquitectura, presentaciones a clientes, PoC-s, desarrollo de aplicaciones de demostraci\u00f3n, etc."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2271"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2271\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2271"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}