{"id":2004,"date":"2015-10-29T20:54:02","date_gmt":"2015-10-29T20:54:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2004"},"modified":"2025-06-13T23:43:45","modified_gmt":"2025-06-14T06:43:45","slug":"couchbase-server-4-0-has-landed","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-server-4-0-has-landed\/","title":{"rendered":"\u00a1Couchbase 4.0 ha aterrizado!"},"content":{"rendered":"<h2 id=\"toc_0\">\u00a1Couchbase Server 4 ha aterrizado!<\/h2>\n<h3 id=\"toc_1\">y el SDK .NET de Couchbase facilita su uso.<\/h3>\n<h3 id=\"toc_2\">\u00bfQu\u00e9 hay de nuevo?<\/h3>\n<ul>\n<li>N1QL - ahora puedes hacer consultas enriquecidas contra tus documentos JSON en Couchbase<\/li>\n<li>XDCR filtrado: no es necesario copiar todos los datos a un centro de datos remoto.<\/li>\n<li>Seguridad LDAP: acceso gestionado m\u00e1s sencillo al servidor Couchbase y a los eventos de registro.<\/li>\n<li>\u00bfHe mencionado N1QL?<\/li>\n<li>y muchas otras funciones.<\/li>\n<\/ul>\n<p>Desc\u00e1rgalo e inst\u00e1lalo: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/get-started-developing-nosql\/#Download_Couchbase_Server\">Servidor Couchbase 4.0<\/a><\/p>\n<h3 id=\"toc_3\">N1QL - Consulta enriquecida<\/h3>\n<p>Una de las mayores caracter\u00edsticas de Couchbase 4.0 es la opci\u00f3n de usar N1QL para consultar tus documentos. El lenguaje est\u00e1 basado en SQL y a\u00f1ade algunas caracter\u00edsticas para ayudarte a trabajar con documentos JSON desnormalizados.<\/p>\n<pre>\r\n<code class=\"language-none\">SELECT * FROM bucket \r\nWHERE attribute1 = &apos;HELLO&apos; AND attribute2 LIKE &apos;%N1QL%&apos; \r\nLIMIT 2<\/code><\/pre>\n<p>La consulta N1QL anterior se ve exactamente como SQL. La \u00fanica diferencia es que en N1QL no estamos seleccionando de un bucket sino de una tabla, pero esto es implementaci\u00f3n no sintaxis. Escribir consultas N1QL es a menudo como escribir sus consultas SQL normales.<\/p>\n<h3 id=\"toc_4\">N1QL es m\u00e1s que SQL<\/h3>\n<p>SQL est\u00e1 construido para consultar datos estructurados con un esquema bien definido y tipos de datos bien definidos para cada columna. N1QL por otro lado es para consultar datos JSON con un esquema flexible, por lo tanto tenemos algunas opciones adicionales en N1QL para ayudarnos a consultar este modelo de datos flexible.<\/p>\n<pre>\r\n<code class=\"language-none\">SELECT value1, value2, {&apos;yes_this_is_valid&apos;: true} \r\nFROM bucket \r\nWHERE attribute1 = &apos;HELLO&apos; \r\nAND attribute2 LIKE &apos;%N!QL%&apos;\r\nAND attribute3 IS NOT MISSING \r\nAND ANY item IN list_of.values SATISFIES item.count &gt;= 5 END<\/code><\/pre>\n<p>Sigue pareciendo SQL, pero ahora hemos a\u00f1adido algunos operadores para ayudarnos a trabajar con los datos JSON.<\/p>\n<h3 id=\"toc_5\">\u00bfQuieres saber m\u00e1s sobre N1QL y Couchbase Server?<\/h3>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/developers\/\">www.couchbase.com\/developers\/<\/a><\/p>\n<h3 id=\"toc_6\">El SDK .NET de Couchbase y N1QL<\/h3>\n<p>N1QL tiene soporte de primera clase en el .NET SDK e incluso tiene la opci\u00f3n de usar N1QL con LINQ. Veamos algunas de las diferentes formas de usar N1QL con el SDK .NET.<\/p>\n<pre>\r\n<code class=\"language-none\">string sql = \"SELECT COUNT(*) FROM default WHERE type=$param1\";\r\nquery = new QueryRequest(sql)\r\n       .AddNamedParameter(\"param1\", \"...\");\r\n\r\nvar result = ClusterHelper\r\n    .GetBucket(\"travel-sample\")\r\n    .Query(query);\r\n\r\nreturn result.Rows; <\/code><\/pre>\n<p>El fragmento anterior muestra c\u00f3mo utilizar la API N1QL sin procesar, pasando una consulta y ejecut\u00e1ndola a trav\u00e9s de una llamada a Query on the Bucket.<\/p>\n<pre>\r\n<code class=\"language-none\">\/\/ Query Syntax\r\nvar result = \r\nfrom myItem in ClusterHelper.GetBucket(\"bucket\").Queryable()\r\nwhere myItem.Attribute1 == \"....\"\r\nselect new { myValue = myItem.Attribute1}<\/code><\/pre>\n<p>Pero tambi\u00e9n se puede utilizar la Sintaxis de Consulta con LINQ. Cuando se utiliza Language Integrated Query (LINQ) .NET utiliza reflection para construir la cadena de consulta, en nuestro caso la cadena de consulta N1QL. Uno de los principales beneficios de utilizar LINQ sobre las consultas escritas a mano es la seguridad de tipo, la finalizaci\u00f3n de c\u00f3digo y la comprobaci\u00f3n en tiempo de compilaci\u00f3n. Pero para obtener la seguridad de tipo LINQ necesita una clase que defina tanto el documento que consultamos (puedes pensar en esto como un esquema en c\u00f3digo) como el resultado devuelto. Esto puede ser la misma clase pero tambi\u00e9n pueden ser dos clases diferentes dependiendo de tu consulta.<\/p>\n<p>En este caso \"MyClass\" se utiliza para completar el c\u00f3digo y construir la consulta N1QL y un tipo an\u00f3nimo se utiliza para mantener el resultado.<\/p>\n<pre>\r\n<code class=\"language-none\">\/\/ Lambda Syntax\r\nClusterHelper\r\n    .GetBucket(\"bucket\")\r\n    .Queryable()\r\n    .Where(item =&gt; myItem.Attribute1 == \"....\")\r\n    .Select(item =&gt; new { myValue = myItem.Attribute1 };<\/code><\/pre>\n<p>Y, por supuesto, la sintaxis lambda tambi\u00e9n es una opci\u00f3n.<\/p>\n<h3 id=\"toc_7\">Uso de N1QL y el SDK .NET en su propio proyecto<\/h3>\n<p>Todo es OpenSource, as\u00ed que siempre puedes obtener el c\u00f3digo fuente en GitHub:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/couchbase\/couchbase-net-client\">SDK .NET de Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/couchbaselabs\/Linq2Couchbase\">LINQ2Couchbase - Extensi\u00f3n N1QL<\/a><\/li>\n<\/ul>\n<p>Si usted (como yo y la mayor\u00eda de los dem\u00e1s desarrolladores .NET) prefiere los paquetes Nuget, puede encontrarlos aqu\u00ed:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseNetClient\/\">SDK .NET de Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Linq2Couchbase\">LINQ2Couchbase - Extensi\u00f3n N1QL<\/a><\/li>\n<\/ul>\n<h3 id=\"toc_8\">Primeros pasos con Couchbase Server 4 y .NET<\/h3>\n<p>Try-cb-dotnet es una de las nuevas muestras que me gustar\u00eda destacar como un gran recurso para aprender y familiarizarse con N1QL en .NET <a href=\"https:\/\/github.com\/couchbaselabs\/try-cb-dotnet\">try-cb-dotnet<\/a><\/p>\n<p>Try-cb-dotnet est\u00e1 dividido en una serie de ramas, cada rama representa un paso en un tutorial, con la esperanza de que sea m\u00e1s f\u00e1cil para usted aprender a utilizar N1QL en .net.<\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase Server 4 has landed! and the Couchbase .NET SDK makes it easy to use! What&apos;s new? N1QL &#8211; you can now do rich query against your JSON documents in Couchbase Filtered XDCR &#8211; Not all data needs to be [&hellip;]<\/p>","protected":false},"author":54,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1812],"tags":[1468],"ppma_author":[9027],"class_list":["post-2004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-n1ql-query","tag-linq"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase 4.0 has landed! - 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-4-0-has-landed\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase 4.0 has landed!\" \/>\n<meta property=\"og:description\" content=\"Couchbase Server 4 has landed! and the Couchbase .NET SDK makes it easy to use! What&amp;apos;s new? N1QL &#8211; you can now do rich query against your JSON documents in Couchbase Filtered XDCR &#8211; Not all data needs to be [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-server-4-0-has-landed\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-10-29T20:54:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:43:45+00:00\" \/>\n<meta name=\"author\" content=\"Martin Esmann, Developer Advocate, 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=\"Martin Esmann, 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\/couchbase-server-4-0-has-landed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/\"},\"author\":{\"name\":\"Martin Esmann, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2795ae2ee44b46479499d6fa514b7ee8\"},\"headline\":\"Couchbase 4.0 has landed!\",\"datePublished\":\"2015-10-29T20:54:01+00:00\",\"dateModified\":\"2025-06-14T06:43:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/\"},\"wordCount\":596,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Linq\"],\"articleSection\":[\".NET\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/\",\"name\":\"Couchbase 4.0 has landed! - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-10-29T20:54:01+00:00\",\"dateModified\":\"2025-06-14T06:43:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#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-4-0-has-landed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase 4.0 has landed!\"}]},{\"@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\/2795ae2ee44b46479499d6fa514b7ee8\",\"name\":\"Martin Esmann, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/af6bbf8de1ed87c78bfbc9ac7454a4fc\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g\",\"caption\":\"Martin Esmann, Developer Advocate, Couchbase\"},\"description\":\"Martin Esmann is a .Net Developer Advocate at Couchbase. He is a passionate developer with a deep focus on Microsoft Technologies like .NET.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/martin-esmann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase 4.0 has landed! - 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-4-0-has-landed\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase 4.0 has landed!","og_description":"Couchbase Server 4 has landed! and the Couchbase .NET SDK makes it easy to use! What&apos;s new? N1QL &#8211; you can now do rich query against your JSON documents in Couchbase Filtered XDCR &#8211; Not all data needs to be [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-server-4-0-has-landed\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-10-29T20:54:01+00:00","article_modified_time":"2025-06-14T06:43:45+00:00","author":"Martin Esmann, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Martin Esmann, Developer Advocate, Couchbase","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/"},"author":{"name":"Martin Esmann, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2795ae2ee44b46479499d6fa514b7ee8"},"headline":"Couchbase 4.0 has landed!","datePublished":"2015-10-29T20:54:01+00:00","dateModified":"2025-06-14T06:43:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/"},"wordCount":596,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Linq"],"articleSection":[".NET","SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/","name":"Couchbase 4.0 has landed! - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-10-29T20:54:01+00:00","dateModified":"2025-06-14T06:43:45+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-4-0-has-landed\/#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-4-0-has-landed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase 4.0 has landed!"}]},{"@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\/2795ae2ee44b46479499d6fa514b7ee8","name":"Martin Esmann, Defensor del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/af6bbf8de1ed87c78bfbc9ac7454a4fc","url":"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g","caption":"Martin Esmann, Developer Advocate, Couchbase"},"description":"Martin Esmann es desarrollador de .Net en Couchbase. Es un desarrollador apasionado con un profundo enfoque en tecnolog\u00edas Microsoft como .NET.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/martin-esmann\/"}]}},"authors":[{"term_id":9027,"user_id":54,"is_guest":0,"slug":"martin-esmann","display_name":"Martin Esmann, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/c8aea3b717146fd35e6b3c299ba8b331987c90cb1996f0141f0c6de29aa04c4b?s=96&d=mm&r=g","first_name":"Martin","last_name":"Esmann","user_url":"","author_category":"","description":"Martin Esmann es desarrollador de .Net en Couchbase. Es un desarrollador apasionado con un profundo enfoque en tecnolog\u00edas Microsoft como .NET."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2004","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\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2004"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2004\/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=2004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2004"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}