{"id":2409,"date":"2016-10-07T12:50:56","date_gmt":"2016-10-07T12:50:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2409"},"modified":"2025-06-13T19:29:52","modified_gmt":"2025-06-14T02:29:52","slug":"using-couchbase-to-store-non-json-data","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/using-couchbase-to-store-non-json-data\/","title":{"rendered":"Uso de Couchbase para almacenar datos no JSON"},"content":{"rendered":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Creo que la mayor parte del poder de <a href=\"https:\/\/www.couchbase.com\/blog\/es\/developers\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Servidor Couchbase<\/a> viene cuando lo utilizas como base de datos documental para almacenar documentos JSON. Puede utilizar <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/getting-started\/first-n1ql-query.html?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">N1QL<\/a>por ejemplo. Sin embargo, hay algunas ocasiones en las que necesitas Couchbase para almacenar algo m\u00e1s. En esta entrada del blog, voy a mostrarte c\u00f3mo almacenar XML y datos binarios en Couchbase. Usar\u00e9 el SDK .NET, pero creo que los otros SDKs tambi\u00e9n soportan estas operaciones.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truereview-storing-json-documents\">Revisar el almacenamiento de documentos JSON<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Un r\u00e1pido repaso al almacenamiento de documentos JSON en Couchbase. Una vez que tengas un bucket, s\u00f3lo tienes que utilizar <code>Inserte<\/code>\/<code>Upsert<\/code> para crear\/actualizar un documento y, a continuaci\u00f3n, utilice <code>Visite<\/code> para volver a sacar el documento. Con el SDK .NET, la serializaci\u00f3n se gestiona autom\u00e1ticamente al tipo que especifiques.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\">\r\n<code class=\"language-C#\">\/\/ insert document\r\nbucket.Insert(\"JSON_\" + guid, new MyType { Foo = \"BarJSON\"});\r\n\/\/ get the document back out and display it\r\nvar jsonBackOut = bucket.Get(\"JSON_\" + guid).Value;\r\nConsole.WriteLine($\"JSON document: {jsonBackOut.Foo}\");<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truestoring-xml\">Almacenamiento de XML<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Almacenar XML requiere un poco m\u00e1s de trabajo. Primero, seralizo un objeto en una cadena XML, usando <code>XmlSerializer<\/code>. Entonces, yo <code>Inserte<\/code> ese valor como cadena. Para recuperarlo, utilizo la funci\u00f3n <code>XmlSeralizer<\/code> de nuevo para pasar de cadena a tipo.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\">\r\n<code class=\"language-C#\">var xmlo = new MyType {Foo = \"BarXML\"};\r\nvar xml = new XmlSerializer(xmlo.GetType());\r\nusing (var textWriter = new StringWriter())\r\n{\r\n    xml.Serialize(textWriter, xmlo);\r\n    bucket.Insert(\"XML_\" + guid, textWriter.ToString());\r\n}\r\n\/\/ get the XML back out, deserialize it, display object\r\nvar xmlBackOut = bucket.Get(\"XML_\" + guid).Value;\r\nusing (var reader = new StringReader(xmlBackOut))\r\n{\r\n    var xmlObject = (MyType)xml.Deserialize(reader);\r\n    Console.WriteLine($\"XML: {xmlObject.Foo}\");\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truestoring-a-byte-array-serialization\">Almacenamiento de una serializaci\u00f3n de matriz de bytes<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>A continuaci\u00f3n, voy a serializar un objeto en un archivo <code>byte<\/code> array. A diferencia de JSON y XML, almacenar en una matriz de bytes significa que el objeto s\u00f3lo puede serializarse de nuevo en un objeto .NET.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>El proceso es similar al de XML, salvo que <code>Inserte<\/code> y <code>Visite<\/code> especificar\u00e1 <code>byte[]<\/code> en lugar de <code>cadena<\/code>y estoy utilizando el <code>BinaryFormatter<\/code> en lugar de <code>XmlSerializer<\/code>.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\">\r\n<code class=\"language-C#\">var formatter = new BinaryFormatter();\r\nusing (var ms = new MemoryStream())\r\n{\r\n    formatter.Serialize(ms, new MyType { Foo = \"BarDotNET\"});\r\n    bucket.Insert(\"byte_\" + guid, ms.ToArray());\r\n}\r\n\/\/ get the bytes back out, deserialize them, display object\r\nvar bytesBackOut = bucket.Get(\"byte_\" + guid).Value;\r\nusing (var stream = new MemoryStream(bytesBackOut))\r\n{\r\n    var bytesObject = (MyType)formatter.Deserialize(stream);\r\n    Console.WriteLine($\".NET: {bytesObject.Foo}\");\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truesummary\">Resumen<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Ejecutar el programa de consola de ejemplo (<a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/034StoringNonJsonDocuments\">El c\u00f3digo fuente est\u00e1 disponible en Github<\/a>) produce:<\/p>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" alt=\"Console output of sample program creating non-JSON values in Couchbase Server\" src=\"\/wp-content\/original-assets\/2016\/october\/using-couchbase-to-store-non-json-data\/002nonjsonconsoleoutput.png\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Despu\u00e9s de ejecutar los ejemplos de c\u00f3digo anteriores, esto es lo que ver\u00e1s en la consola de Couchbase:<\/p>\n<\/div>\n<p><img decoding=\"async\" alt=\"View of JSON and byte array values in Couchbase Console\" src=\"\/wp-content\/original-assets\/2016\/october\/using-couchbase-to-store-non-json-data\/001couchbaseconsolenonjson.png\" \/><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Los documentos no JSON existen en el mismo bucket que los documentos JSON. Pero como puedes ver, Couchbase Server no sabe c\u00f3mo interpretarlos. As\u00ed que no podr\u00e1s realizar la mayor\u00eda de las operaciones N1QL en estos documentos. No puedes indexar sus valores como en un documento JSON. Y, en el caso de la matriz de bytes .NET, un programa que no sea .NET no podr\u00e1 interpretarlos en absoluto.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Si puedes almacenar tus valores en JSON, te lo recomiendo. Pero Couchbase Server te da la flexibilidad de almacenar otros tipos de valores.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u00bfTienes preguntas? \u00bfNecesitas ayuda con Couchbase Server? Consulta el <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Foros de Couchbase<\/a> o <a href=\"https:\/\/twitter.com\/mgroves\">S\u00edgame en Twitter<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>I believe most of the power of Couchbase Server comes when you use it as a document database to store JSON documents. You get to use N1QL, for instance! However, there are some times when you need Couchbase to store [&hellip;]<\/p>","protected":false},"author":71,"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,1816,1819],"tags":[1261,1430,1747],"ppma_author":[8937],"class_list":["post-2409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-couchbase-server","category-data-modeling","tag-json","tag-serialization","tag-xml"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Using Couchbase to Store Non-JSON Data - 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-couchbase-to-store-non-json-data\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Couchbase to Store Non-JSON Data\" \/>\n<meta property=\"og:description\" content=\"I believe most of the power of Couchbase Server comes when you use it as a document database to store JSON documents. You get to use N1QL, for instance! However, there are some times when you need Couchbase to store [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/using-couchbase-to-store-non-json-data\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-07T12:50:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:29:52+00:00\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 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-couchbase-to-store-non-json-data\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Using Couchbase to Store Non-JSON Data\",\"datePublished\":\"2016-10-07T12:50:55+00:00\",\"dateModified\":\"2025-06-14T02:29:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/\"},\"wordCount\":379,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"JSON\",\"serialization\",\"XML\"],\"articleSection\":[\".NET\",\"Couchbase Server\",\"Data Modeling\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/\",\"name\":\"Using Couchbase to Store Non-JSON Data - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-10-07T12:50:55+00:00\",\"dateModified\":\"2025-06-14T02:29:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#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-couchbase-to-store-non-json-data\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Couchbase to Store Non-JSON Data\"}]},{\"@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\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Using Couchbase to Store Non-JSON Data - 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-couchbase-to-store-non-json-data\/","og_locale":"es_MX","og_type":"article","og_title":"Using Couchbase to Store Non-JSON Data","og_description":"I believe most of the power of Couchbase Server comes when you use it as a document database to store JSON documents. You get to use N1QL, for instance! However, there are some times when you need Couchbase to store [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/using-couchbase-to-store-non-json-data\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-10-07T12:50:55+00:00","article_modified_time":"2025-06-14T02:29:52+00:00","author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Using Couchbase to Store Non-JSON Data","datePublished":"2016-10-07T12:50:55+00:00","dateModified":"2025-06-14T02:29:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/"},"wordCount":379,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["JSON","serialization","XML"],"articleSection":[".NET","Couchbase Server","Data Modeling"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/","url":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/","name":"Using Couchbase to Store Non-JSON Data - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-10-07T12:50:55+00:00","dateModified":"2025-06-14T02:29:52+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/#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-couchbase-to-store-non-json-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Couchbase to Store Non-JSON Data"}]},{"@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\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"A Matthew D. Groves le encanta programar. No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa. Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa. Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores. Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"A Matthew D. Groves le encanta programar.  No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa.  Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa.  Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores.  Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2409","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\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2409"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2409\/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=2409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2409"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}