{"id":2413,"date":"2016-10-17T17:39:57","date_gmt":"2016-10-17T17:39:57","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2413"},"modified":"2025-10-09T07:21:00","modified_gmt":"2025-10-09T14:21:00","slug":"more-n1ql-enhancements-in-4-5-1-part2","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/","title":{"rendered":"N1QL enhancements in 4.5.1 &#8211; Part2"},"content":{"rendered":"<h2 style=\"text-align: center\"><u>Simplify Transitioning from RDBMS<\/u><\/h2>\n<p><span style=\"color: #333333;line-height: 20.799999237060547px;text-align: left\">Couchbase Server 4.5.1 release brings multiple functionality, usability and performance improvements in N1QL to address needs of\u00a0enterprise applications. These enhancements address many of our customer critical issues, and simplify\u00a0<\/span><span style=\"color: #333333;line-height: 20.799999237060547px;text-align: left\">Transitioning from RDBMS<\/span><span style=\"color: #333333;line-height: 20.799999237060547px;text-align: left\">.<\/span><\/p>\n<p>Try Couchbase Server 4.5.1. \u00a0Its ready for production, field tested by partners &amp; customers. See what\u2019s new for full list of enhancements and improvements.<\/p>\n<p>Don&#8217;t miss\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/n1ql-functionality-enhancements-in-couchbase-server-4.5.1\/\">part1<\/a> of the blog.<\/p>\n<h2>New query setting <code>pretty<\/code><\/h2>\n<p>Pretty!! Pretty!! <code>pretty<\/code>!! \u00a0Yes, <code>pretty<\/code> is super impressive new query setting in N1QL that can enable or disable pretty formatting of query results. You might ask, what\u2019s so great about it?? And, why anybody may want to disable the beautiful pretty formatting of the JSON output.<\/p>\n<p>As the old adage goes, there are no free lunches. Pretty formatting query results comes with its own expense:<\/p>\n<ol>\n<li>First, a quick fact is that the white space (tabs, spaces, newlines) characters in a pretty-formatted JSON document consume almost a third of it\u2019s size.\n<ul>\n<li>So, simply cutting down on the beautification will save all the raw bytes flowing over the network.<\/li>\n<li>Moreover, consider the corresponding saving on the memory and processing resources of N1QL service.<\/li>\n<li>Altogether, savings are pretty significant.<\/li>\n<\/ul>\n<\/li>\n<li>The pretty output format is good for human readable scenarios, with\u00a0<span style=\"color: #333333;line-height: 20.799999237060547px;text-align: left\">human manageable\u00a0result sizes<\/span>.\n<ul>\n<li>However, real world applications and computer programs run queries much more often than humans, and process much bigger query results.<\/li>\n<li>For these, what matters is <strong>performance<\/strong> and <strong>efficiency<\/strong>; not pretty formatting. In fact, such formatting is an overhead to the JSON parser and application, and is usually discarded. Typically, applications have their own presentation layer to format the data appropriately for respective users.<\/li>\n<li>For example, consider a travel reservation website, where you are searching for flights. I am sure, no travel site dumps available flights as bunch of JSON documents.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>The new query parameter <code>pretty<\/code> in 4.5.1 allows to enable\/disable formatting a query result. \u00a0The parameter can be:<\/p>\n<ul>\n<li>set to <code>true<\/code> or <code>false<\/code>.<\/li>\n<li>Passed to CBQ engine as command line parameters<\/li>\n<li>Passed as Query parameter with REST calls.<\/li>\n<\/ul>\n<p>By default, it is set to <code>true<\/code>. When set to <code>false<\/code>, the white space characters are stripped from the query results. The performance benefits are significantly visible when queries produce large results, and it of course depends on the percentage of white-space overhead in your documents. For example, following query which selects all documents from travel-sample, run almost <strong>3x faster<\/strong> when <code>pretty = false<\/code>. Also, note the size of result set, which is one third of the pretty formatted result.<\/p>\n<h2 style=\"margin-top: 0.7em;color: #333333;text-align: left\"><span style=\"font-family: monospace, monospace;line-height: 20.799999237060547px\">With <code>pretty = true<\/code><\/span><\/h2>\n<pre><code class=\"language-http\">varakurprasad$ time curl -v https:\/\/localhost:8093\/query\/service -d \"pretty=true&amp;statement=SELECT * from `travel-sample`\" | tail -15\r\n* Hostname was NOT found in DNS cache\r\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\r\n                                 Dload  Upload   Total   Spent    Left  Speed\r\n  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying ::1...\r\n* Connected to localhost (::1) port 8093 (#0)\r\n* Server auth using Basic with user 'travel-sample'\r\n&gt; POST \/query\/service HTTP\/1.1\r\n&gt; Authorization: Basic dHJhdmVsLXNhbXBsZTpoZWxsbw==\r\n&gt; User-Agent: curl\/7.37.1\r\n&gt; Host: localhost:8093\r\n&gt; Accept: *\/*\r\n&gt; Content-Length: 51\r\n&gt; Content-Type: application\/x-www-form-urlencoded\r\n&gt; \r\n} [data not shown]\r\n* upload completely sent off: 51 out of 51 bytes\r\n&lt; HTTP\/1.1 200 OK\r\n&lt; Content-Type: application\/json; version=1.6.0\r\n&lt; Date: Sat, 15 Oct 2016 02:04:09 GMT\r\n&lt; Transfer-Encoding: chunked\r\n&lt; \r\n{ [data not shown]\r\n100  103M    0  103M  100    51  16.6M      8  0:00:06  0:00:06 --:--:-- 17.2M\r\n* Connection #0 to host localhost left intact\r\n                ],\r\n                \"sourceairport\": \"TLV\",\r\n                \"stops\": 0,\r\n                \"type\": \"route\"\r\n            }\r\n        }\r\n    ],\r\n    \"status\": \"success\",\r\n    \"metrics\": {\r\n        \"elapsedTime\": \"6.165034483s\",\r\n        \"executionTime\": \"6.164993497s\",\r\n        \"resultCount\": 31591,\r\n        \"resultSize\": 107830610\r\n    }\r\n}\r\n\r\nreal 0m6.208s\r\nuser 0m5.704s\r\nsys 0m0.373s<\/code><\/pre>\n<h2 style=\"margin-top: 0.7em;color: #333333;text-align: left\"><span style=\"font-family: monospace, monospace;line-height: 20.799999237060547px\">With\u00a0<code>pretty = false<\/code><\/span><\/h2>\n<p><span style=\"font-family: monospace, monospace;line-height: 20.799999237060547px\"><code>Note that the total <\/code><\/span>resultSize now is only\u00a036754457bytes, and the query run in 2.2sec.<\/p>\n<pre style=\"cursor: default\"><code>varakurprasad$ time curl -v https:\/\/localhost:8093\/query\/service -d \"pretty=false&amp;statement=SELECT * from `travel-sample`\" | tail -5\r\n* Hostname was NOT found in DNS cache\r\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\r\n                                 Dload  Upload   Total   Spent    Left  Speed\r\n  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying ::1...\r\n* Connected to localhost (::1) port 8093 (#0)\r\n* Server auth using Basic with user 'travel-sample'\r\n&gt; POST \/query\/service HTTP\/1.1\r\n&gt; Authorization: Basic dHJhdmVsLXNhbXBsZTpoZWxsbw==\r\n&gt; User-Agent: curl\/7.37.1\r\n&gt; Host: localhost:8093\r\n&gt; Accept: *\/*\r\n&gt; Content-Length: 52\r\n&gt; Content-Type: application\/x-www-form-urlencoded\r\n&gt; \r\n} [data not shown]\r\n* upload completely sent off: 52 out of 52 bytes\r\n&lt; HTTP\/1.1 200 OK\r\n&lt; Content-Type: application\/json; version=1.6.0\r\n&lt; Date: Sat, 15 Oct 2016 02:03:29 GMT\r\n&lt; Transfer-Encoding: chunked\r\n&lt; \r\n{ [data not shown]\r\n100 35.1M    0 35.1M  100    52  15.9M     23  0:00:02  0:00:02 --:--:-- 15.9M\r\n\r\n\"status\": \"success\",\r\n\"metrics\": {\"elapsedTime\": \"2.148354775s\",\"executionTime\": \"2.148323137s\",\"resultCount\": 31591,\"resultSize\": 36754457}\r\n}\r\n\r\nreal 0m2.223s\r\nuser 0m1.977s\r\nsys 0m0.141s<\/code><\/pre>\n<h2>Enhancements to dynamic object construction in N1QL queries<\/h2>\n<p>N1QL already supports creation of JSON objects dynamically in queries. This immensely helps in creating specifically constructed result objects in query projection-lists. Couchbase server 4.5.1 extends the power of expressions and enriches the dynamic object creation and object processing in N1QL queries.<\/p>\n<ol>\n<li>In Couchbase Server 4.5.1, N1QL allows both names and values of object fields to be arbitrary expressions. In earlier versions, the names of fields are required to be static strings. If a name does not evaluate to a string, the result of the object construction is NULL. For example:\n<pre><code class=\"language-sql\">SELECT { UPPER(callsign) || \"_key\" : callsign || \":\" || country || \":\" || name } AS myobj \r\nFROM `travel-sample`\r\nWHERE type = 'airline' limit 1;\r\n[\r\n  {\r\n    \"myobj\": {\r\n      \"MILE-AIR_key\": \"MILE-AIR:United States:40-Mile Air\"\r\n    }\r\n  }\r\n]<\/code><\/pre>\n<\/li>\n<li>When constructing objects in a N1QL query, the names of fields in name-value pairs is made optional in 4.5.1. For example, the following query implicitly assigns names &#8220;type&#8221; and &#8220;name&#8221; for respective values:\n<pre><code class=\"language-sql\">SELECT {type, name} AS myobj FROM `travel-sample` LIMIT 1;\r\n[\r\n  {\r\n    \"myobj\": {\r\n      \"type\": \"airport\"\r\n      \"name\": \"airport_123\"\r\n    }\r\n  }\r\n]<\/code><\/pre>\n<\/li>\n<\/ol>\n<h2>New array function ARRAY_INTERSECT()<\/h2>\n<p>ARRAY_INTERSECT() function takes two or more arrays as parameters and returns the intersection of the input arrays as the result, i.e the array containing values that are present in all the input arrays. It returns an empty array if there are no common array elements. For more information, see documentation. For example, following query finds the hotels that are liked by Brian or Lilian, in the travel-sample bucket shipped with <a href=\"https:\/\/www.couchbase.com\/nosql-databases\/downloads\/\">Couchbase Server 4.5.1<\/a>.<\/p>\n<pre><code class=\"language-sql\">SELECT meta().id, ARRAY_INTERSECT(public_likes, [\"Brian Kilback\", \"Lilian McLaughlin\"]) AS likes\r\nFROM `travel-sample` WHERE type = 'hotel' \r\nORDER BY likes DESC\r\nLIMIT 4;\r\n[\r\n  {\r\n    \"id\": \"hotel_10025\",\r\n    \"likes\": [\r\n      \"Lilian McLaughlin\",\r\n      \"Brian Kilback\"\r\n    ]\r\n  },\r\n  {\r\n    \"id\": \"hotel_10026\",\r\n    \"likes\": []\r\n  },\r\n  {\r\n    \"id\": \"hotel_10064\",\r\n    \"likes\": []\r\n  },\r\n  {\r\n    \"id\": \"hotel_10063\",\r\n    \"likes\": []\r\n  }\r\n]<\/code><\/pre>\n<p>Download\u00a0<a href=\"https:\/\/www.couchbase.com\/nosql-databases\/downloads\/\">Couchbase Server\u00a04.5.1<\/a> and give it a try. Let me know any questions\/comments, or just how awesome it is ;-)<br \/>\nCheers!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Simplify Transitioning from RDBMS Couchbase Server 4.5.1 release brings multiple functionality, usability and performance improvements in N1QL to address needs of\u00a0enterprise applications. These enhancements address many of our customer critical issues, and simplify\u00a0Transitioning from RDBMS. Try Couchbase Server 4.5.1. \u00a0Its [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1812],"tags":[],"ppma_author":[8968],"class_list":["post-2413","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n1ql-query"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>N1QL enhancements in 4.5.1 - Part2 - 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\/more-n1ql-enhancements-in-4-5-1-part2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"N1QL enhancements in 4.5.1 - Part2\" \/>\n<meta property=\"og:description\" content=\"Simplify Transitioning from RDBMS Couchbase Server 4.5.1 release brings multiple functionality, usability and performance improvements in N1QL to address needs of\u00a0enterprise applications. These enhancements address many of our customer critical issues, and simplify\u00a0Transitioning from RDBMS. Try Couchbase Server 4.5.1. \u00a0Its [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-17T17:39:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:21:00+00:00\" \/>\n<meta name=\"author\" content=\"The Couchbase Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"The Couchbase Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/\"},\"author\":{\"name\":\"The Couchbase Team\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/764f4a6771ee19bc7af70b70a326fb93\"},\"headline\":\"N1QL enhancements in 4.5.1 &#8211; Part2\",\"datePublished\":\"2016-10-17T17:39:57+00:00\",\"dateModified\":\"2025-10-09T14:21:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/\"},\"wordCount\":668,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/\",\"name\":\"N1QL enhancements in 4.5.1 - Part2 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-10-17T17:39:57+00:00\",\"dateModified\":\"2025-10-09T14:21:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#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\/more-n1ql-enhancements-in-4-5-1-part2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"N1QL enhancements in 4.5.1 &#8211; Part2\"}]},{\"@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\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\/764f4a6771ee19bc7af70b70a326fb93\",\"name\":\"The Couchbase Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/7befc37d02226b59499817eafdec60c3\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g\",\"caption\":\"The Couchbase Team\"},\"description\":\"Jennifer Garcia is a Senior Web Manager at Couchbase Inc. As the website manager, Jennifer has overall responsibility for the website properties including design, implementation, content, and performance.\",\"sameAs\":[\"https:\/\/www.couchbase.com\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/jennifer-garcia\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"N1QL enhancements in 4.5.1 - Part2 - 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\/more-n1ql-enhancements-in-4-5-1-part2\/","og_locale":"en_US","og_type":"article","og_title":"N1QL enhancements in 4.5.1 - Part2","og_description":"Simplify Transitioning from RDBMS Couchbase Server 4.5.1 release brings multiple functionality, usability and performance improvements in N1QL to address needs of\u00a0enterprise applications. These enhancements address many of our customer critical issues, and simplify\u00a0Transitioning from RDBMS. Try Couchbase Server 4.5.1. \u00a0Its [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-10-17T17:39:57+00:00","article_modified_time":"2025-10-09T14:21:00+00:00","author":"The Couchbase Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"The Couchbase Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/"},"author":{"name":"The Couchbase Team","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/764f4a6771ee19bc7af70b70a326fb93"},"headline":"N1QL enhancements in 4.5.1 &#8211; Part2","datePublished":"2016-10-17T17:39:57+00:00","dateModified":"2025-10-09T14:21:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/"},"wordCount":668,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["SQL++ \/ N1QL Query"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/","url":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/","name":"N1QL enhancements in 4.5.1 - Part2 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-10-17T17:39:57+00:00","dateModified":"2025-10-09T14:21:00+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/more-n1ql-enhancements-in-4-5-1-part2\/#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\/more-n1ql-enhancements-in-4-5-1-part2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"N1QL enhancements in 4.5.1 &#8211; Part2"}]},{"@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":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@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\/764f4a6771ee19bc7af70b70a326fb93","name":"The Couchbase Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/7befc37d02226b59499817eafdec60c3","url":"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g","caption":"The Couchbase Team"},"description":"Jennifer Garcia is a Senior Web Manager at Couchbase Inc. As the website manager, Jennifer has overall responsibility for the website properties including design, implementation, content, and performance.","sameAs":["https:\/\/www.couchbase.com"],"url":"https:\/\/www.couchbase.com\/blog\/author\/jennifer-garcia\/"}]}},"authors":[{"term_id":8968,"user_id":2,"is_guest":0,"slug":"jennifer-garcia","display_name":"The Couchbase Team","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g","author_category":"","last_name":"Garcia","first_name":"Jennifer","job_title":"","user_url":"https:\/\/www.couchbase.com","description":"Jennifer Garcia is a Senior Web Manager at Couchbase Inc. As the website manager, Jennifer has overall responsibility for the website properties including design, implementation, content, and performance."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2413"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2413\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2413"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}