{"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\/pt\/using-couchbase-to-store-non-json-data\/","title":{"rendered":"Uso do Couchbase para armazenar dados n\u00e3o JSON"},"content":{"rendered":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Acredito que a maior parte do poder de <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/developers\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Servidor Couchbase<\/a> vem quando voc\u00ea o usa como um banco de dados de documentos para armazenar documentos JSON. Voc\u00ea pode usar <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 exemplo! No entanto, h\u00e1 ocasi\u00f5es em que voc\u00ea precisa do Couchbase para armazenar outra coisa. Nesta postagem do blog, mostrarei como armazenar dados XML e bin\u00e1rios no Couchbase. Usarei o SDK do .NET, mas acredito que os outros SDKs tamb\u00e9m ofere\u00e7am suporte a essas opera\u00e7\u00f5es.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truereview-storing-json-documents\">Revis\u00e3o do armazenamento de documentos JSON<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Uma r\u00e1pida revis\u00e3o do armazenamento de documentos JSON no Couchbase. Depois de ter um bucket, voc\u00ea pode simplesmente usar <code>Inserir<\/code>\/<code>Upsert<\/code> para criar\/atualizar um documento e, em seguida, usar <code>Obter<\/code> para obter o documento de volta. Com o SDK do .NET, a serializa\u00e7\u00e3o \u00e9 tratada automaticamente para o tipo que voc\u00ea especificar.<\/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\">Armazenamento de XML<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>O armazenamento de XML exige um pouco mais de trabalho. Primeiro, eu seralizo um objeto em uma string XML, usando <code>XmlSerializer<\/code>. Ent\u00e3o, eu <code>Inserir<\/code> esse valor como uma string. Para recuper\u00e1-lo, uso o comando <code>XmlSeralizador<\/code> novamente para passar de string para um 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\">Armazenamento de uma serializa\u00e7\u00e3o de matriz de bytes<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Em seguida, vou serializar um objeto em um objeto <code>byte<\/code> matriz. Ao contr\u00e1rio do JSON e do XML, o armazenamento em uma matriz de bytes significa que o objeto s\u00f3 pode ser serializado novamente em um objeto .NET.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>O processo \u00e9 semelhante ao XML, exceto <code>Inserir<\/code> e <code>Obter<\/code> especificar\u00e1 <code>byte[]<\/code> em vez de <code>string<\/code>e estou usando o <code>BinaryFormatter<\/code> em vez 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\">Resumo<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Executar o programa de console de amostra (<a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/034StoringNonJsonDocuments\">O c\u00f3digo-fonte est\u00e1 dispon\u00edvel no Github<\/a>) produz:<\/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>Depois de executar os exemplos de c\u00f3digo acima, isso \u00e9 o que voc\u00ea ver\u00e1 no Console do 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>Os documentos n\u00e3o JSON existem no mesmo bucket que os documentos JSON. Mas, como voc\u00ea pode ver, o Couchbase Server n\u00e3o sabe como interpret\u00e1-los. Portanto, voc\u00ea n\u00e3o poder\u00e1 executar a maioria das opera\u00e7\u00f5es N1QL nesses documentos. N\u00e3o \u00e9 poss\u00edvel indexar seus valores como em um documento JSON. E, no caso da matriz de bytes .NET, um programa que n\u00e3o seja .NET n\u00e3o conseguir\u00e1 interpret\u00e1-los de forma alguma.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Se voc\u00ea puder armazenar seus valores em JSON, eu o recomendaria. Mas o Couchbase Server lhe d\u00e1 a flexibilidade de armazenar outros tipos de valores.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Tem d\u00favidas? Precisa de ajuda com o Couchbase Server? D\u00ea uma olhada na se\u00e7\u00e3o <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">F\u00f3runs do Couchbase<\/a> ou <a href=\"https:\/\/twitter.com\/mgroves\">Siga-me no 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.5 (Yoast SEO v26.5) - 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\/pt\/using-couchbase-to-store-non-json-data\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\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\/pt\/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\":\"pt-BR\",\"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\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\/pt\/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\/pt\/using-couchbase-to-store-non-json-data\/","og_locale":"pt_BR","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\/pt\/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":"pt-BR","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":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@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":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"pt-BR","@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 \u00e9 um cara que adora programar. N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/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":"Matthew D. Groves \u00e9 um cara que adora programar.  N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa.  Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90.  Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores.  Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2409"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2409\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2409"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}