{"id":2258,"date":"2016-05-17T15:00:00","date_gmt":"2016-05-17T15:00:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2258"},"modified":"2025-06-13T20:20:32","modified_gmt":"2025-06-14T03:20:32","slug":"using-covering-indexes-on-a-multiple-document-type-bucket","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/using-covering-indexes-on-a-multiple-document-type-bucket\/","title":{"rendered":"Utilizaci\u00f3n de \u00edndices de cobertura en una cubeta de varios tipos de documentos"},"content":{"rendered":"<p>Recientemente estuve trabajando en un proyecto que hac\u00eda uso de N1QL para consultar <a href=\"https:\/\/developer.couchbase.com\/server\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Servidor Couchbase<\/a> datos. Se trataba de una aplicaci\u00f3n Java interna que estaba alojando en una instancia de Amazon EC2 de bajo presupuesto. Mi problema aqu\u00ed es que mis consultas se estaban ejecutando incre\u00edblemente lento. La raz\u00f3n de esto era que s\u00f3lo ten\u00eda un \u00edndice primario que era muy gen\u00e9rico.<\/p>\n<p>Vamos a ver lo que hice para acelerar mis consultas y algunas de las cosas que tuve que tener en cuenta durante el proceso.<\/p>\n<p>En primer lugar, es probablemente una buena idea compartir qu\u00e9 versi\u00f3n de Couchbase Server estoy usando. Estoy usando Couchbase Server 4.1 en mi m\u00e1quina de baja potencia. El bucket con el que estoy trabajando tiene alrededor de 100.000 documentos de diferentes tipos. No es que importe para este art\u00edculo, pero la aplicaci\u00f3n que accede a estos datos fue construida en Java usando el Couchbase Java SDK.<\/p>\n<p>Con mi configuraci\u00f3n fuera del camino, perm\u00edtanme compartir una de las consultas que estaba ejecutando:<\/p>\n<pre><code>\r\nSELECT\r\n    MILLIS_TO_UTC(date, '2006-01-12') AS tweetDate,\r\n    COUNT(*) AS count\r\nFROM `default`\r\nWHERE type='tweet'\r\nGROUP BY MILLIS_TO_UTC(date, '2006-01-12')\r\nORDER BY tweetDate ASC\r\n<\/code><\/pre>\n<p>Esta consulta me devolver\u00eda el n\u00famero total de Tweets que hab\u00eda guardado para una fecha concreta. La informaci\u00f3n sobre la hora no era importante para m\u00ed. Tenga en cuenta que al principio s\u00f3lo ten\u00eda un \u00edndice, que era mi \u00edndice primario. La consulta anterior tardar\u00eda bastante tiempo en ejecutarse.<\/p>\n<p>Aqu\u00ed es donde empec\u00e9 a reevaluar mi estrategia.<\/p>\n<p>Decid\u00ed tomar ventaja de los \u00edndices de cobertura que se hicieron disponibles en Couchbase 4.1. Esto es cuando hacemos un \u00edndice que cubre todas las propiedades que ser\u00e1n usadas dentro de una consulta. Mi <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/createindex.html\">creaci\u00f3n de \u00edndices<\/a> de la consulta anterior ten\u00eda el siguiente aspecto:<\/p>\n<pre><code>\r\nCREATE INDEX twitter_by_date ON `default` (date, type)\r\nWHERE type = 'tweet'\r\nUSING GSI;\r\n<\/code><\/pre>\n<p>S\u00ed, estoy haciendo agregaciones, pero al fin y al cabo s\u00f3lo estoy consultando en funci\u00f3n de la variable <code>fecha<\/code> y <code>tipo<\/code> propiedades. As\u00ed que volv\u00ed a ejecutar la consulta con el \u00edndice de cobertura, pero no observ\u00e9 ning\u00fan cambio en el rendimiento.<\/p>\n<p>Esto me llev\u00f3 a dirigir un <code>EXPLICAR<\/code> en la propia consulta para solucionar el problema.<\/p>\n<pre><code>\r\nEXPLAIN SELECT\r\n    MILLIS_TO_UTC(date, '2006-01-12') AS tweetDate,\r\n    COUNT(*) AS count\r\nFROM `default`\r\nWHERE type='tweet'\r\nGROUP BY MILLIS_TO_UTC(date, '2006-01-12')\r\nORDER BY tweetDate ASC\r\n<\/code><\/pre>\n<p>Cuando vi el desglose de la consulta que <code>EXPLICAR<\/code> me proporcion\u00f3, pude ver que todav\u00eda estaba tratando de utilizar el <code>#primario<\/code> que hab\u00eda creado originalmente. Esto es incluso despu\u00e9s de validar que el \u00edndice de cobertura ahora exist\u00eda en Couchbase.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/using-covering-indexes-on-a-multiple-document-type-bucket\/twitter-not-covering.png\" \/><\/p>\n<p>Entonces record\u00e9 que los documentos de Twitter no eran los \u00fanicos tipos de datos que exist\u00edan en mi cubo. En otras palabras, no todos los documentos ten\u00edan una propiedad llamada <code>fecha<\/code> y no todos los documentos ten\u00edan una propiedad <code>tipo<\/code> que coincid\u00eda con <strong>tuitee<\/strong>. Ahora he tenido que revisar la consulta que quer\u00eda ejecutar para comprobar estos supuestos.<\/p>\n<pre><code>\r\nSELECT\r\n    MILLIS_TO_UTC(date, '2006-01-12') AS tweetDate,\r\n    COUNT(*) AS count\r\nFROM `default`\r\nWHERE type='tweet' AND date IS NOT MISSING\r\nGROUP BY MILLIS_TO_UTC(date, '2006-01-12')\r\nORDER BY tweetDate ASC\r\n<\/code><\/pre>\n<p>En la consulta anterior, observe en particular c\u00f3mo he a\u00f1adido <code>Y LA FECHA NO FALTA<\/code>. Primero compruebo que el <code>fecha<\/code> existe. Ya est\u00e1bamos comprobando esa propiedad <code>tipo<\/code> emparejado <strong>tuitee<\/strong>pero les faltaba la otra pieza.<\/p>\n<p>Despu\u00e9s de ejecutar la consulta de nuevo, era significativamente m\u00e1s r\u00e1pida. Cuando inclu\u00ed <code>EXPLICAR<\/code> Inmediatamente pude ver que la consulta utilizaba ahora el \u00edndice de cobertura en lugar del \u00edndice primario.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/using-covering-indexes-on-a-multiple-document-type-bucket\/twitter-covering.png\" \/><\/p>\n<p>Para saber m\u00e1s sobre los \u00edndices de cobertura, visite la p\u00e1gina <a href=\"https:\/\/www.couchbase.com\/blog\/es\/developers\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Portal para desarrolladores de Couchbase<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>I was recently working on a project that made use of N1QL for querying Couchbase Server data. This was an internal Java application that I was hosting on a low budget Amazon EC2 instance. My problem here is that my [&hellip;]<\/p>","protected":false},"author":63,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1816,9417,1812],"tags":[],"ppma_author":[9032],"class_list":["post-2258","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-server","category-performance","category-n1ql-query"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Using Covering Indexes on a Multiple Document Type Bucket - 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\/using-covering-indexes-on-a-multiple-document-type-bucket\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Covering Indexes on a Multiple Document Type Bucket\" \/>\n<meta property=\"og:description\" content=\"I was recently working on a project that made use of N1QL for querying Couchbase Server data. This was an internal Java application that I was hosting on a low budget Amazon EC2 instance. My problem here is that my [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/using-covering-indexes-on-a-multiple-document-type-bucket\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-17T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:20:32+00:00\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Using Covering Indexes on a Multiple Document Type Bucket\",\"datePublished\":\"2016-05-17T15:00:00+00:00\",\"dateModified\":\"2025-06-14T03:20:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/\"},\"wordCount\":504,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Server\",\"High Performance\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/\",\"name\":\"Using Covering Indexes on a Multiple Document Type Bucket - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-05-17T15:00:00+00:00\",\"dateModified\":\"2025-06-14T03:20:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#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\/using-covering-indexes-on-a-multiple-document-type-bucket\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Covering Indexes on a Multiple Document Type Bucket\"}]},{\"@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\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Using Covering Indexes on a Multiple Document Type Bucket - 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\/using-covering-indexes-on-a-multiple-document-type-bucket\/","og_locale":"es_MX","og_type":"article","og_title":"Using Covering Indexes on a Multiple Document Type Bucket","og_description":"I was recently working on a project that made use of N1QL for querying Couchbase Server data. This was an internal Java application that I was hosting on a low budget Amazon EC2 instance. My problem here is that my [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/using-covering-indexes-on-a-multiple-document-type-bucket\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2016-05-17T15:00:00+00:00","article_modified_time":"2025-06-14T03:20:32+00:00","author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Using Covering Indexes on a Multiple Document Type Bucket","datePublished":"2016-05-17T15:00:00+00:00","dateModified":"2025-06-14T03:20:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/"},"wordCount":504,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Best Practices and Tutorials","Couchbase Server","High Performance","SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/","url":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/","name":"Using Covering Indexes on a Multiple Document Type Bucket - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-05-17T15:00:00+00:00","dateModified":"2025-06-14T03:20:32+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/using-covering-indexes-on-a-multiple-document-type-bucket\/#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\/using-covering-indexes-on-a-multiple-document-type-bucket\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Covering Indexes on a Multiple Document Type Bucket"}]},{"@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\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, Defensor del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"Nic Raboy es un defensor de las tecnolog\u00edas modernas de desarrollo web y m\u00f3vil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y m\u00f3vil m\u00e1s f\u00e1cil de entender.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","author_category":"","last_name":"Raboy","first_name":"Nic","job_title":"","user_url":"https:\/\/www.thepolyglotdeveloper.com","description":"Nic Raboy es un defensor de las tecnolog\u00edas modernas de desarrollo web y m\u00f3vil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y m\u00f3vil m\u00e1s f\u00e1cil de entender."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2258","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\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2258"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2258\/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=2258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2258"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}