{"id":4692,"date":"2018-02-28T07:51:47","date_gmt":"2018-02-28T15:51:47","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=4692"},"modified":"2025-06-13T17:22:41","modified_gmt":"2025-06-14T00:22:41","slug":"working-json-arrays-n1ql","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/working-json-arrays-n1ql\/","title":{"rendered":"Trabajando con Arrays JSON en N1QL"},"content":{"rendered":"<p>El lenguaje de consulta N1QL dispone de un rico conjunto de facilidades para trabajar con arrays JSON. En este art\u00edculo, cubriremos constantes de arrays, facilidades para buscar en arrays, formas de transformar arrays, y algunas funciones \u00fatiles de N1QL para arrays. El formato es interactivo; abre una instancia de Couchbase y prueba los ejemplos t\u00fa mismo.<\/p>\n<p>Para empezar, ve a la consola de administraci\u00f3n de tu instancia de Couchbase y crea un bucket llamado \"test\".<\/p>\n<p>Alternativamente, puede crear el cubo desde la l\u00ednea de comandos, de la siguiente manera:<\/p>\n<p><code>curl -X POST -u Administrador:contrase\u00f1a -d name=prueba -d ramQuotaMB=100 -d authType=sasl -d saslPassword=donotuse -d proxyPort=11224 -d bucketType=couchbase https:\/\/localhost:8091\/pools\/default\/buckets<\/code><\/p>\n<p>Con\u00e9ctese a la instancia utilizando el shell CBQ de la siguiente manera:<\/p>\n<p><code>cbq -e https:\/\/localhost:8091 -u Administrador -p contrase\u00f1a<\/code><\/p>\n<p>A continuaci\u00f3n, en CBQ, cree un \u00edndice primario en su nuevo bucket:<\/p>\n<p><code>cbq&gt; crear \u00edndice primario en test;<\/code><\/p>\n<p>Ahora estamos listos para empezar.<\/p>\n<h4>Constantes de matriz de Couchbase<\/h4>\n<p>En primer lugar, N1QL te permite crear valores de array directamente como constantes de array, as\u00ed:<\/p>\n<p><code>cbq&gt; select [1,2,3] as num_array, [\"a\", \"b\", \"c\"] as string_array, [\"1\", 2, [3, \"4\"], {\"a\": \"b\"}] as mixed_array;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"mixed_array\": [\r\n                \"1\",\r\n                2,\r\n                [\r\n                    3,\r\n                    \"4\"\r\n                ],\r\n                {\r\n                    \"a\": \"b\"\r\n                }\r\n            ],\r\n            \"num_array\": [\r\n                1,\r\n                2,\r\n                3\r\n            ],\r\n            \"string_array\": [\r\n                \"a\",\r\n                \"b\",\r\n                \"c\"\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>Las constantes pueden incluir incluso valores extra\u00eddos de la base de datos:<br \/>\n<code>cbq&gt; insert into prueba (clave, valor) values (\"ex1\", {\"v1\" : 7, \"v2\" : \"p\u00e1jaro\", \"v3\" : 99});<\/code><\/p>\n<p><code>cbq&gt; select [1, v1, 3] as num_array, [\"a\", v2, \"c\"] as string_array from test where v3 = 99;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"num_array\": [\r\n                1,\r\n                7,\r\n                3\r\n            ],\r\n            \"string_array\": [\r\n                \"a\",\r\n                \"bird\",\r\n                \"c\"\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>Tambi\u00e9n se admite la selecci\u00f3n de elementos por \u00edndice basado en cero:<\/p>\n<p><code>cbq&gt; select [\"manzana\", \"pl\u00e1tano\", \"cereza\", \"d\u00e1til\", \"baya del sa\u00faco\"][1] as val;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"val\": \"banana\"\r\n        }\r\n    ]\r\n<\/pre>\n<h4>Couchbase Query Arrays y B\u00fasqueda en Arrays<\/h4>\n<p>La cl\u00e1usula IN se utiliza para comprobar la pertenencia.<\/p>\n<p><code>cbq&gt; select (9 IN [1, 2, 3, 4]) as not_found, (9 in [7, 8, 9]) as is_found;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"is_found\": true,\r\n            \"not_found\": false\r\n        }\r\n    ]\r\n<\/pre>\n<p>La cl\u00e1usula ANY se utiliza para verificar que al menos un elemento de la matriz coincide con alguna condici\u00f3n:<\/p>\n<p><code>cbq&gt; select (CUALQUIER v EN [1, 2, 3, 4, 5] CUMPLE v &gt; 4 END) as is_found, (CUALQUIER v EN [1, 2, 3, 4, 5] CUMPLE v = 7 END) as not_found;<\/code><\/p>\n<pre>   \"results\": [\r\n        {\r\n            \"is_found\": true,\r\n            \"not_found\": false\r\n        }\r\n    ]\r\n<\/pre>\n<p>La cl\u00e1usula EVERY se utiliza para verificar que todos los elementos de un array cumplen alguna condici\u00f3n:<\/p>\n<p><code>cbq&gt; select (EVERY v IN [1, 2, 3, 4, 5] SATISFIES v &gt; 0 END) as is_found, (EVERY v in [-1, 0, 1, 2, 3] SATISFIES v &gt; 0 END ) as not_found;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"is_found\": true,\r\n            \"not_found\": false\r\n        }\r\n    ]\r\n<\/pre>\n<p>ANY AND EVERY es muy similar a EVERY, pero EVERY es verdadero para matrices vac\u00edas, pero ANY AND EVERY es falso:<\/p>\n<p><code>cbq&gt; select (ANY AND EVERY v IN [] SATISFIES v &gt; 0 END) as any_every_res, (EVERY v IN [] SATISFIES v &gt; 0 END) as every_res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"any_every_res\": false,\r\n            \"every_res\": true\r\n        }\r\n    ]\r\n<\/pre>\n<h4>Rebanar<\/h4>\n<p>El operador [:] sirve para trocear, es decir, tomar trozos de matrices.<\/p>\n<p><code>cbq&gt; select [1, 2, 3, 4, 5][1: 3] as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": [\r\n                2,\r\n                3\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>El primer valor de la expresi\u00f3n slice es el \u00edndice por el que se debe empezar (basado en cero); el segundo es el primer \u00edndice que se debe excluir. Esta convenci\u00f3n deber\u00eda resultarle familiar de otros lenguajes de programaci\u00f3n.<\/p>\n<p>Deben indicarse tanto el inicio como el final de la porci\u00f3n. Los valores negativos enumeran desde el final de la matriz:<\/p>\n<p><code>cbq&gt; select [1, 2, 3, 4, 5][1: -1] as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": [\r\n                2,\r\n                3,\r\n                4\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<h4>Transformaci\u00f3n de matrices Couchbase<\/h4>\n<p>La expresi\u00f3n ARRAY permite transformar una matriz en otra.<\/p>\n<p><code>cbq&gt; select ARRAY v*2 FOR v IN [1, 2, 3, 4, 5] END as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": [\r\n                2,\r\n                4,\r\n                6,\r\n                8,\r\n                10\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>La expresi\u00f3n ARRAY tambi\u00e9n admite la selecci\u00f3n:<\/p>\n<p><code>cbq&gt; select ARRAY v*2 FOR v IN [1, 2, 3, 4, 5] WHEN v &gt; 2 END as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": [\r\n                6,\r\n                8,\r\n                10\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>La expresi\u00f3n de destino puede incluir no s\u00f3lo cada valor, sino tambi\u00e9n los \u00edndices:<\/p>\n<p><code>cbq&gt; SELECT ARRAY {v:pos} FOR pos:v IN [ \"uno\", \"dos\", \"tres\" ] END;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"$1\": [\r\n                {\r\n                    \"one\": 0\r\n                },\r\n                {\r\n                    \"two\": 1\r\n                },\r\n                {\r\n                    \"three\": 2\r\n                }\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>Para obtener m\u00e1s informaci\u00f3n sobre las operaciones con matrices en N1QL, consulte la documentaci\u00f3n <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/n1ql\/n1ql-language-reference\/collectionops.html\">aqu\u00ed<\/a>.<\/p>\n<h4>Funciones Array de Couchbase<\/h4>\n<p>N1QL dispone de un amplio conjunto de funciones para operar con matrices JSON.<\/p>\n<p>ARRAY_LENGTH devuelve la longitud de una matriz.<\/p>\n<p><code>cbq&gt; select ARRAY_LENGTH([1, 2, 3, 4, 5]) as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": 5\r\n        }\r\n    ]\r\n<\/pre>\n<p>ARRAY_APPEND a\u00f1ade elementos al final de una matriz.<\/p>\n<p><code>cbq&gt; select ARRAY_APPEND([1, 2, 3, 4, 5], 9, 10) as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": [\r\n                1,\r\n                2,\r\n                3,\r\n                4,\r\n                5,\r\n                9,\r\n                10\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>ARRAY_CONCAT es similar, pero une dos matrices.<\/p>\n<p><code>cbq&gt; select ARRAY_CONCAT([1, 2, 3, 4, 5], [7, 8]) as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": [\r\n                1,\r\n                2,\r\n                3,\r\n                4,\r\n                5,\r\n                7,\r\n                8\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>ARRAY_SORT ordena los elementos de una matriz.<\/p>\n<p><code>cbq&gt; select ARRAY_SORT([2, 1, 3, 5, 4]) as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": [\r\n                1,\r\n                2,\r\n                3,\r\n                4,\r\n                5\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>Por \u00faltimo, ARRAY_DISTINCT elimina los duplicados de una matriz.<\/p>\n<p><code>cbq&gt; select ARRAY_DISTINCT([1, 2, 3, 3, 4, 5, 4, 5]) as res;<\/code><\/p>\n<pre>    \"results\": [\r\n        {\r\n            \"res\": [\r\n                5,\r\n                1,\r\n                4,\r\n                2,\r\n                3\r\n            ]\r\n        }\r\n    ]\r\n<\/pre>\n<p>Hay muchas m\u00e1s funciones de array \u00fatiles en N1QL, demasiadas para cubrirlas aqu\u00ed. Puedes encontrar la lista completa <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/n1ql\/n1ql-language-reference\/arrayfun.html\">aqu\u00ed<\/a>.<\/p>\n<h4>Rendimiento<\/h4>\n<p>\"\u00bfPero qu\u00e9 pasa con el rendimiento de las matrices JSON?\", te preguntar\u00e1s. No temas, eso se trata en otro art\u00edculo, <a href=\"https:\/\/dzone.com\/articles\/index-first-and-query-faster\">aqu\u00ed<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>The N1QL query language has a rich set of facilities for working with\u00a0 JSON arrays. In this article, we&#8217;ll cover array constants, facilities for searching in arrays, ways to transform arrays, and some useful N1QL array functions. The format is [&hellip;]<\/p>","protected":false},"author":8157,"featured_media":4693,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1812],"tags":[1875,2133],"ppma_author":[9058],"class_list":["post-4692","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-n1ql-query","tag-arrays","tag-functions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>N1QL Array Functions | Searching in Arrays | Couchbase<\/title>\n<meta name=\"description\" content=\"In this Couchbase blog post, we cover array constants, facilities for searching in arrays, ways to transform arrays, and some useful N1QL array functions.\" \/>\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\/working-json-arrays-n1ql\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Working with JSON Arrays in N1QL\" \/>\n<meta property=\"og:description\" content=\"In this Couchbase blog post, we cover array constants, facilities for searching in arrays, ways to transform arrays, and some useful N1QL array functions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/working-json-arrays-n1ql\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-28T15:51:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:22:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1536\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Johan Larson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Johan Larson\" \/>\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\/working-json-arrays-n1ql\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/\"},\"author\":{\"name\":\"Johan Larson\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/043ccbbfc54b95927c73f81ec7f6a0a1\"},\"headline\":\"Working with JSON Arrays in N1QL\",\"datePublished\":\"2018-02-28T15:51:47+00:00\",\"dateModified\":\"2025-06-14T00:22:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/\"},\"wordCount\":440,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg\",\"keywords\":[\"arrays\",\"functions\"],\"articleSection\":[\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/\",\"name\":\"N1QL Array Functions | Searching in Arrays | Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg\",\"datePublished\":\"2018-02-28T15:51:47+00:00\",\"dateModified\":\"2025-06-14T00:22:41+00:00\",\"description\":\"In this Couchbase blog post, we cover array constants, facilities for searching in arrays, ways to transform arrays, and some useful N1QL array functions.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg\",\"width\":2048,\"height\":1536},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Working with JSON Arrays in N1QL\"}]},{\"@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\/043ccbbfc54b95927c73f81ec7f6a0a1\",\"name\":\"Johan Larson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/93b175bb8728e12439dd573fc27b9d1a\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2ddf616344da1f84e85c42ba2bfc102e28380128c107cc21eeecc26edc737227?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2ddf616344da1f84e85c42ba2bfc102e28380128c107cc21eeecc26edc737227?s=96&d=mm&r=g\",\"caption\":\"Johan Larson\"},\"description\":\"Johan Larson is a Senior Software Engineer at Couchbase. Johan's work responsibility is building an SQL-based query language for JSON data in a distributed NoSQL system.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/johan-larson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"N1QL Array Functions | Searching in Arrays | Couchbase","description":"En esta entrada del blog de Couchbase, cubrimos constantes de arrays, facilidades para buscar en arrays, formas de transformar arrays, y algunas funciones \u00fatiles de N1QL para arrays.","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\/working-json-arrays-n1ql\/","og_locale":"es_MX","og_type":"article","og_title":"Working with JSON Arrays in N1QL","og_description":"In this Couchbase blog post, we cover array constants, facilities for searching in arrays, ways to transform arrays, and some useful N1QL array functions.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/working-json-arrays-n1ql\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-02-28T15:51:47+00:00","article_modified_time":"2025-06-14T00:22:41+00:00","og_image":[{"width":2048,"height":1536,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg","type":"image\/jpeg"}],"author":"Johan Larson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Johan Larson","Est. reading time":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/"},"author":{"name":"Johan Larson","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/043ccbbfc54b95927c73f81ec7f6a0a1"},"headline":"Working with JSON Arrays in N1QL","datePublished":"2018-02-28T15:51:47+00:00","dateModified":"2025-06-14T00:22:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/"},"wordCount":440,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg","keywords":["arrays","functions"],"articleSection":["Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/","url":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/","name":"N1QL Array Functions | Searching in Arrays | Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg","datePublished":"2018-02-28T15:51:47+00:00","dateModified":"2025-06-14T00:22:41+00:00","description":"En esta entrada del blog de Couchbase, cubrimos constantes de arrays, facilidades para buscar en arrays, formas de transformar arrays, y algunas funciones \u00fatiles de N1QL para arrays.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/02\/stone-wall.jpg","width":2048,"height":1536},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/working-json-arrays-n1ql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Working with JSON Arrays in N1QL"}]},{"@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\/043ccbbfc54b95927c73f81ec7f6a0a1","name":"Johan Larson","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/93b175bb8728e12439dd573fc27b9d1a","url":"https:\/\/secure.gravatar.com\/avatar\/2ddf616344da1f84e85c42ba2bfc102e28380128c107cc21eeecc26edc737227?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2ddf616344da1f84e85c42ba2bfc102e28380128c107cc21eeecc26edc737227?s=96&d=mm&r=g","caption":"Johan Larson"},"description":"Johan Larson es Ingeniero de Software Senior en Couchbase. La responsabilidad del trabajo de Johan es construir un lenguaje de consulta basado en SQL para datos JSON en un sistema NoSQL distribuido.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/johan-larson\/"}]}},"authors":[{"term_id":9058,"user_id":8157,"is_guest":0,"slug":"johan-larson","display_name":"Johan Larson","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/2ddf616344da1f84e85c42ba2bfc102e28380128c107cc21eeecc26edc737227?s=96&d=mm&r=g","author_category":"","last_name":"Larson","first_name":"Johan","job_title":"","user_url":"","description":"Johan Larson es Ingeniero de Software Senior en Couchbase. La responsabilidad del trabajo de Johan es construir un lenguaje de consulta basado en SQL para datos JSON en un sistema NoSQL distribuido."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/4692","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\/8157"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=4692"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/4692\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/4693"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=4692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=4692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=4692"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=4692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}