{"id":1605,"date":"2014-12-17T16:03:37","date_gmt":"2014-12-17T16:03:37","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1605"},"modified":"2025-06-13T23:50:04","modified_gmt":"2025-06-14T06:50:04","slug":"expiry-callbacks-couchbase-server","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/expiry-callbacks-couchbase-server\/","title":{"rendered":"Devoluciones de llamada de caducidad de Couchbase Labs"},"content":{"rendered":"<h3>TTL y notificaci\u00f3n de expiraci\u00f3n<\/h3>\n<p>Couchbase incluye un <a href=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-manage-ttl-with-couchbase-n1ql\/\">TTL<\/a> (Time To Live) como parte de los campos de metadatos de cada documento.  Todos los SDK de cliente incluyen soporte para establecer\/consultar\/tocar este valor.   El valor se establece como el \"n\u00famero de segundos que un documento debe vivir\" para los documentos que deben expirar en 30 d\u00edas o menos.  Para valores superiores a 30 d\u00edas se debe pasar un valor de tiempo de \u00e9poca unix.  Los TTL se utilizan a menudo en almacenes de sesiones de alto rendimiento y aplicaciones de almacenamiento en cach\u00e9.   Lo que ocurre con una sesi\u00f3n cuando un documento expira puede ser problem\u00e1tico y engorroso de gestionar en el nivel de aplicaci\u00f3n.   \u00bfQu\u00e9 pasar\u00eda si el alto rendimiento y la flexibilidad de Couchbase Server se aprovecharan para proporcionar callbacks para la expiraci\u00f3n de documentos?    Presentamos \"expiry-notifier\" de Couchbase Labs.   La aplicaci\u00f3n, el c\u00f3digo fuente y las instrucciones pueden descargarse de <a href=\"https:\/\/github.com\/couchbaselabs\/expiry-notifier\">el repositorio de couchbaselabs en github.<\/a>**<\/p>\n<h3>Avisador de expiraci\u00f3n de Couchbase Labs<\/h3>\n<p>La aplicaci\u00f3n ejecuta una peque\u00f1a instancia de aplicaci\u00f3n de node.js y express.   Se configura y se accede a ella a trav\u00e9s de una API REST.  \u00bfPor qu\u00e9 Node.js?   Node.js es una plataforma de aplicaciones bien soportada por Couchbase, es incre\u00edblemente ligera, gestiona su huella eficientemente y es muy adecuada para aplicaciones RESTful.  Expiry-notifier puede ser llamado directamente o puede ser configurado para realizar autom\u00e1ticamente callbacks de expiraci\u00f3n dentro de un intervalo de tiempo dado. La funcionalidad de devoluci\u00f3n de llamada de caducidad devuelve los metaidentificadores y el tiempo de caducidad (o segundos hasta la caducidad) de los documentos que caducar\u00e1n dentro de un intervalo de tiempo especificado.<\/p>\n<p>Por ejemplo, para recibir un callback de caducidad de una aplicaci\u00f3n que va a sondear directamente el servicio, se define un documento en Couchbase con una caducidad de 300 segundos como:<\/p>\n<p><strong><span style=\"font-size: 14px\"><br \/>\nClave (meta.id): triunfo<\/span><\/strong><\/p>\n<p class=\"rteindent1\"><strong><span style=\"font-size: 14px\">{<br \/>\n\"valor\": \"1966 Triumph Spitfire Mark II 4 velocidades con sobremarcha y carburadores gemelos Weber.\"<br \/>\n}<\/span><\/strong><\/p>\n<p>Si expiry-notifier se est\u00e1 ejecutando, el tiempo relativo se ha establecido en true (m\u00e1s sobre esto en un segundo), y despu\u00e9s de 10 segundos se llama al endpoint REST para sondear las callbacks de expiraci\u00f3n:<\/p>\n<p class=\"rteindent1\"><span style=\"font-size: 14px\"><strong>https:\/\/servername:3000\/poll\/300<\/strong><\/span><\/p>\n<p>Se devolver\u00e1 un objeto JSON:<\/p>\n<p class=\"rteindent1\"><strong><span style=\"font-size: 14px\">{triumph:290}<\/span><\/strong><\/p>\n<h3><span style=\"font-family: inherit;font-size: 1em\">C\u00f3mo funciona expiry-notifier<\/span><\/h3>\n<p>Expiry-notifier puede ejecutarse desde cualquier servidor que tenga instalado node.js.   Una vez instalado expiry-notifier (las instrucciones se encuentran en <a href=\"https:\/\/github.com\/couchbaselabs\/expiry-notifier\">en el repositorio de couchbaselabs en github<\/a>), es necesario iniciar la aplicaci\u00f3n.  Desde el directorio ra\u00edz donde est\u00e1 instalada la aplicaci\u00f3n, ejecute<\/p>\n<p class=\"rteindent1\"><span style=\"font-size: 14px\"><strong>\"npm start\"<\/strong><\/span><\/p>\n<p>Por defecto, la aplicaci\u00f3n se ejecutar\u00e1 utilizando el puerto 3000.   Para comprobar si la aplicaci\u00f3n se est\u00e1 ejecutando, ejecute el siguiente comando REST:<\/p>\n<p class=\"rteindent1\"><span style=\"font-size: 14px\"><strong>\"https:\/\/:3000\/status\"<strong><strong><strong><strong>???<\/strong><\/strong><\/strong><\/strong><\/strong><strong><strong><strong>???<\/strong><\/strong><\/strong><\/span><\/p>\n<p>Para configurar el servicio para comunicarse con un cl\u00faster couchbase, llame al siguiente comando REST:<\/p>\n<p class=\"rteindent1\"><span style=\"font-size: 14px\"><strong>\u201chttps:\/\/:3000\/setup\/server\/192.168.60.101\/8091\/beer-sample\u201d<\/strong><\/span><\/p>\n<p class=\"rteindent1\">El comando REST anterior se define como:\u00a0<strong><span style=\"font-size: 14px\">\/setup\/server\/:server\/:port\/:bucket [RETORNA: {JSON OBJECT} con cambio de estado]. \u00a0<\/span><\/strong><span style=\"font-size: 16px\">Al llamar a este comando REST se realiza lo siguiente: <\/span><\/p>\n<ul class=\"rteindent1\">\n<li>Instancia del cliente inteligente para comunicarse con el cl\u00faster Couchbase<\/li>\n<li>Establece un \u00edndice ligero en couchbase que contiene metadatos s\u00f3lo para el tiempo de caducidad.<\/li>\n<\/ul>\n<p>Para configurar un endpoint para que el servicio env\u00ede callbacks de caducidad a un servidor de aplicaciones utilice el siguiente comando REST:<\/p>\n<p class=\"rteindent1\"><span style=\"font-size: 14px\"><strong>\"https:\/\/:3000\/setup\/endpoint\/\/3000\/receive_callback\"<\/strong><\/span><\/p>\n<p class=\"rteindent1\">El comando REST anterior se define como: <strong><span style=\"font-size: 14px\">\/setup\/endpoint\/:hostname\/:port\/:path\/ [RETORNA: {JSON OBJECT} con cambio de estado]. <\/span><\/strong>Nota: el indicador \"https\" s\u00f3lo se utiliza si expiry-notifier debe enviar devoluciones de llamada a trav\u00e9s del protocolo https.  Consulte la documentaci\u00f3n para obtener informaci\u00f3n m\u00e1s espec\u00edfica.<\/p>\n<p>Para comenzar a enviar llamadas de retorno al punto final definido anteriormente para los documentos que van a caducar en los pr\u00f3ximos 30 segundos, y cada 30 segundos a partir de entonces, utilice el siguiente comando REST :<\/p>\n<p class=\"rteindent1\"><strong><span style=\"font-size: 14px\">\"https:\/\/:3000\/setup\/poll\/30\/loop\"<\/span><\/strong><\/p>\n<p class=\"rteindent1\">El comando REST anterior se define como:<span style=\"font-family: inherit;font-size: 1em\"><span style=\"font-size: 14px\"><strong>\/setup\/poll\/:interval\/:loop [RETORNA: {JSON OBJECT} con cambio de estado]<\/strong><\/span> Este comando enviar\u00e1 un objeto JSON de meta id's y su caducidad en tiempo de \u00e9poca UNIX (n\u00famero de segundos despu\u00e9s del 1\/1\/1970 en que el documento est\u00e1 programado para caducar).  Si se prefiere el n\u00famero de segundos hasta que caduque el documento, utilice el comando siguiente.<\/span><\/p>\n<p>Para devolver el n\u00famero de segundos que faltan para que caduque un documento en lugar del tiempo de \u00e9poca UNIX utilice el siguiente comando:<\/p>\n<p class=\"rteindent1\"><span style=\"font-size: 14px\"><strong>\"https:\/\/:3000\/setup\/relative\/true\"<\/strong><\/span><\/p>\n<p class=\"rteindent1\">El comando REST anterior se define como:\u00a0<span style=\"font-size: 14px\"><strong>\/setup\/relative\/:bool [RETURNS: {JSON OBJECT} con cambio de estado]<\/strong><\/span><\/p>\n<p><strong><span style=\"font-size: 14px\">** Descargo de responsabilidad: Couchbase Labs proporciona c\u00f3digo experimental s\u00f3lo con fines de investigaci\u00f3n y desarrollo.   El c\u00f3digo y las aplicaciones de Couchbase Labs no est\u00e1n soportados bajo ning\u00fan Acuerdo de Soporte de Couchbase y se proporcionan tal cual, sin garant\u00eda de ning\u00fan tipo. \u00a0<\/span><\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>TTL&#8217;s and Expiry Notification Couchbase includes a TTL (Time To Live) as part of the meta data fields for each document. \u00a0All of the client SDK&#8217;s includes support for setting\/querying\/touching this value. \u00a0 The value is set as the &#8220;number [&hellip;]<\/p>","protected":false},"author":20,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9417,1822],"tags":[],"ppma_author":[9019],"class_list":["post-1605","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-performance","category-node-js"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Labs Expiry Callbacks - 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\/expiry-callbacks-couchbase-server\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Labs Expiry Callbacks\" \/>\n<meta property=\"og:description\" content=\"TTL&#8217;s and Expiry Notification Couchbase includes a TTL (Time To Live) as part of the meta data fields for each document. \u00a0All of the client SDK&#8217;s includes support for setting\/querying\/touching this value. \u00a0 The value is set as the &#8220;number [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/expiry-callbacks-couchbase-server\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-17T16:03:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:50:04+00:00\" \/>\n<meta name=\"author\" content=\"Todd Greenstein\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@todd_greenstein\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Todd Greenstein\" \/>\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\/expiry-callbacks-couchbase-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/\"},\"author\":{\"name\":\"Todd Greenstein\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/64b5d1e5969768c5d63c11c696951ed3\"},\"headline\":\"Couchbase Labs Expiry Callbacks\",\"datePublished\":\"2014-12-17T16:03:37+00:00\",\"dateModified\":\"2025-06-14T06:50:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/\"},\"wordCount\":702,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"High Performance\",\"Node.js\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/\",\"name\":\"Couchbase Labs Expiry Callbacks - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-17T16:03:37+00:00\",\"dateModified\":\"2025-06-14T06:50:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#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\/expiry-callbacks-couchbase-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Labs Expiry Callbacks\"}]},{\"@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\/64b5d1e5969768c5d63c11c696951ed3\",\"name\":\"Todd Greenstein\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/abfbe093983052aa28595343c19888ce\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g\",\"caption\":\"Todd Greenstein\"},\"description\":\"Todd Greenstein is a Solution Architect at Couchbase. Todd is specialize in API design, architecture, data modeling, nodejs and golang development.\",\"sameAs\":[\"https:\/\/x.com\/todd_greenstein\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/todd-greenstein\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Labs Expiry Callbacks - 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\/expiry-callbacks-couchbase-server\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase Labs Expiry Callbacks","og_description":"TTL&#8217;s and Expiry Notification Couchbase includes a TTL (Time To Live) as part of the meta data fields for each document. \u00a0All of the client SDK&#8217;s includes support for setting\/querying\/touching this value. \u00a0 The value is set as the &#8220;number [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/expiry-callbacks-couchbase-server\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-17T16:03:37+00:00","article_modified_time":"2025-06-14T06:50:04+00:00","author":"Todd Greenstein","twitter_card":"summary_large_image","twitter_creator":"@todd_greenstein","twitter_misc":{"Written by":"Todd Greenstein","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/"},"author":{"name":"Todd Greenstein","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/64b5d1e5969768c5d63c11c696951ed3"},"headline":"Couchbase Labs Expiry Callbacks","datePublished":"2014-12-17T16:03:37+00:00","dateModified":"2025-06-14T06:50:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/"},"wordCount":702,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["High Performance","Node.js"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/","url":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/","name":"Couchbase Labs Expiry Callbacks - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-17T16:03:37+00:00","dateModified":"2025-06-14T06:50:04+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/expiry-callbacks-couchbase-server\/#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\/expiry-callbacks-couchbase-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Labs Expiry Callbacks"}]},{"@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\/64b5d1e5969768c5d63c11c696951ed3","name":"Todd Greenstein","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/abfbe093983052aa28595343c19888ce","url":"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g","caption":"Todd Greenstein"},"description":"Todd Greenstein is a Solution Architect at Couchbase. Todd is specialize in API design, architecture, data modeling, nodejs and golang development.","sameAs":["https:\/\/x.com\/todd_greenstein"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/todd-greenstein\/"}]}},"authors":[{"term_id":9019,"user_id":20,"is_guest":0,"slug":"todd-greenstein","display_name":"Todd Greenstein","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g","author_category":"","last_name":"Greenstein","first_name":"Todd","job_title":"","user_url":"","description":"Todd Greenstein es Arquitecto de Soluciones en Couchbase. Todd est\u00e1 especializado en dise\u00f1o de APIs, arquitectura, modelado de datos y desarrollo en nodejs y golang."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1605","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\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1605"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1605\/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=1605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1605"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}