{"id":3417,"date":"2024-03-25T12:10:35","date_gmt":"2024-03-25T19:10:35","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/"},"modified":"2024-03-25T12:10:35","modified_gmt":"2024-03-25T19:10:35","slug":"couchbase-server-7-6-top-developer-features","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-7-6-top-developer-features\/","title":{"rendered":"Couchbase Server 7.6 Top New Features For Developers"},"content":{"rendered":"\n<p><span>We are thrilled to announce the <a href=\"https:\/\/www.couchbase.com\/blog\/announcing-vector-search\/\">launch of Couchbase 7.6<\/a>, a groundbreaking update poised to redefine the landscape of database technology. This latest release is a testament to our commitment to enhancing database technology, with a significant leap in AI and machine learning integration with <a href=\"https:\/\/www.couchbase.com\/products\/vector-search\/\">Vector Search<\/a>, LangChain integration, empowering developers to build more intelligent and responsive applications.\u00a0<\/span><\/p>\n\n\n\n<p><span>Key to this version is the introduction of advanced Graph Traversal capabilities, opening new avenues for complex data relationships and network analysis. Enhancing developer efficiency, and seamlessly integrating RDBMS use cases with the agility and scalability of NoSQL.\u00a0<\/span><\/p>\n\n\n\n<p><span>Alongside these innovations, we&#8217;ve focused on elevating the user experience with enhanced monitoring of Query and Search performance, ensuring optimal efficiency and responsiveness in real-time data operations.\u00a0 This release also expands our BI capabilities with enriched BI Visualization tools, enabling deeper data insights and more powerful analytics.\u00a0<\/span><\/p>\n\n\n\n<p><strong>Couchbase 7.6 is not just an update; it&#8217;s a transformation, delivering the tools and features that developers, SREs, and data scientists need to drive the future of database technology. Here are some of them.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span>AI integration\u00a0<\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Vector Search<\/span><\/h3>\n\n\n\n<p><span>Couchbase introduces a new Vector Search capability with release 7.6, a significant enhancement to our search capabilities that aligns with the evolving technological demands of modern applications. As data complexity grows, the need for advanced search mechanisms becomes critical. Vector Search provides a solution, allowing developers to implement semantic search, enrich machine learning models, and support AI applications directly within their Couchbase environment.<\/span><\/p>\n\n\n\n<p><span>With Vector search, the search goes beyond matching keywords or term frequency search. It allows the search to be based on the semantic meaning, the context in which it is used in the queries. In effect, it captures the intent of the queries, providing more relevant results even when exact keywords or terms are not present in the content.\u00a0<\/span><\/p>\n\n\n\n<p><i><span>For more information, please refer to the <a href=\"https:\/\/www.couchbase.com\/products\/vector-search\/\">Couchbase documentation<\/a>.<\/span><\/i><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Vector Search with SQL++<\/span><\/h3>\n\n\n\n<p><span>You can use Couchbase&#8217;s NoSQL database capabilities to store any content, such as user profiles, historical interaction data, or content metadata. Then use a Machine Learning Model, like OpenAI, to generate the embeddings. Couchbase Vector Search can then index the embeddings and provide semantic and hybrid search.\u00a0<\/span><\/p>\n\n\n\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/03\/image_2024-03-25_121858091.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-15509 alignnone\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image_2024-03-25_121858091-1024x711-1.png\" alt=\"Hybrid vector search with OpenAI embeddings in Couchbase\" width=\"900\" height=\"625\"><\/a><\/p>\n\n\n\n<p><span>You can also use SQL++ to perform the vector search directly, and combine the search predicates with the flexibility of Couchbase SQL++ for hybrid search:<\/span><\/p>\n\n\n<p>[crayon nums=&#8221;false&#8221; lang=&#8221;default&#8221; decode=&#8221;true&#8221;]SELECT b.book_name, b.categories, b.summaries<br \/>\nFROM `books` AS b<br \/>\nWHERE SEARCH(b, {\u00a0 \/* calling Couchbase SEARCH() *\/<br \/>\n\u00a0 \u00a0 &#8220;query&#8221;: {&#8220;match_none&#8221;: {} },<br \/>\n\u00a0 \u00a0 &#8220;knn&#8221;: [{ &#8220;field&#8221;: &#8220;embedding&#8221;,<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &#8220;vector&#8221;: [ -0.014143292,-0.005013913,..],<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;k&#8221;: 3<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }],<br \/>\n\u00a0 \u00a0 &#8220;fields&#8221;: [&#8220;book_name&#8221;, &#8220;summaries&#8221;],<br \/>\n\u00a0 \u00a0 &#8220;sort&#8221;: [&#8220;-_score&#8221;],<br \/>\n\u00a0 \u00a0 &#8220;limit&#8221;: 5<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0})<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0AND b.catogories=&#8217;Non fiction&#8217;;[\/crayon]<\/p>\n\n\n\n<p><span>Why we do not want to add a section on how to get the embeddings for the above query? The reason is that to do so in a UDF would require UDF\/JS to support CURL,\u00a0 something that is not supported in Capella.\u00a0 Users can obtain the embeddings in their application layer.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Recursive CTE<\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Graph Traversal<\/span><\/h3>\n\n\n\n<p><span>The introduction of Recursive CTE to the Couchbase SQL++ capabilities, means you can now perform complex data analysis and manipulation, particularly in the area of graph data. You can effortlessly navigate and analyze hierarchical and networked data structures, unlocking insights with unprecedented ease and efficiency. Whether it&#8217;s exploring social networks, organizational hierarchies, or interconnected systems, our new feature simplifies these tasks, making your data analysis more intuitive and productive than ever before.<\/span><\/p>\n\n\n\n<p><span>Here is an example of Couchbase SQL++ Recursive CTE query to find all flights from LAX to MAD with less than two stops from this sample dataset. <\/span><i><span>Note that this sample data is not based on the travel-sample, but on a simplified version of the AA routes for 2008. <\/span><\/i><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr>\n<td><b>source_airport_code<\/b><\/td>\n<td><b>destination_airport_code<\/b><\/td>\n<td><b>airline<\/b><\/td>\n<\/tr>\n<tr>\n<td><span>LAX<\/span><\/td>\n<td><span>MAD<\/span><\/td>\n<td><span>AA<\/span><\/td>\n<\/tr>\n<tr>\n<td><span>LAX<\/span><\/td>\n<td><span>LHR<\/span><\/td>\n<td><span>AA<\/span><\/td>\n<\/tr>\n<tr>\n<td><span>LHR<\/span><\/td>\n<td><span>MAD<\/span><\/td>\n<td><span>AA<\/span><\/td>\n<\/tr>\n<tr>\n<td><span>LAX<\/span><\/td>\n<td><span>OPO<\/span><\/td>\n<td><span>AA<\/span><\/td>\n<\/tr>\n<tr>\n<td><span>OPO<\/span><\/td>\n<td><span>MAD<\/span><\/td>\n<td><span>AA<\/span><\/td>\n<\/tr>\n<tr>\n<td><span>MAD<\/span><\/td>\n<td><span>OPO<\/span><\/td>\n<td><span>AA<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr>\n<td><b>SQL++ Query<\/b><\/td>\n<td><b>Results<\/b><\/td>\n<\/tr>\n<tr>\n<td><i><span>\/* List all routes from LAX to MAD with &lt; 2 stops *\/<\/span><\/i><span><br>\n<\/span><span>WITH RECURSIVE RouteCTE AS (<\/span><span><br>\n<\/span><span>\u00a0 <\/span><b>SELECT<\/b><span> [r.source_airport_code,<br>\n<\/span>r.destination_airport_code] <b>AS<\/b><span> route,<br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 r.destination_airport_code <\/span><b>AS<\/b><span> lastStop,<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span>1<\/span> <b>AS<\/b><span> depth<\/span><span><br>\n<\/span><span>\u00a0 <\/span><b>FROM<\/b><span> routes\u00a0 r<\/span><span><br>\n<\/span><span>\u00a0 <\/span><b>WHERE<\/b><span> r.source_airport_code = <\/span><span>&#8216;LAX&#8217;<\/span><span><br>\n<\/span><b>UNION<\/b> <b>ALL<\/b><span><br>\n<\/span><span>\u00a0 <\/span><b>SELECT<\/b> <span>ARRAY_APPEND<\/span><span>(r.route,f.destination_airport_code) <\/span><span><b>AS <\/b><\/span><span>route,<br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 f.destination_airport_code <\/span><b>AS<\/b><span> lastStop,<br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 r.depth + <\/span><span>1<\/span> <b>AS<\/b><span> depth<\/span><span><br>\n<\/span><span>\u00a0 <\/span><b>FROM<\/b><span> RouteCTE\u00a0 r<\/span><span><br>\n<\/span><span>\u00a0 <\/span><b>JOIN<\/b><span> routes\u00a0 f <\/span><b>ON<\/b><span> r.lastStop = f.source_airport_code<\/span><span><br>\n<\/span><span>\u00a0 <\/span><b>WHERE<\/b><span> f.destination_airport_code != <\/span><span>&#8216;LAX&#8217;<\/span><br>\n<b>\u00a0 \u00a0 AND<\/b><span> r.depth &lt; <\/span><span>3<\/span><span><br>\n<\/span><span>)<\/span><b>OPTIONS<\/b><span> {&#8220;levels&#8221;:3}<\/span><span><br>\n<\/span><b>SELECT<\/b><span> r.*<\/span><span><br>\n<\/span><b>FROM<\/b><span> RouteCTE <\/span><b>AS<\/b><span> r<\/span><span><br>\n<\/span><b>WHERE<\/b><span> r.lastStop = <\/span><span>&#8216;MAD&#8217;<\/span><span><br>\n<\/span><span>AND r.depth &lt; 3;<\/span><\/td>\n<td><span>[ <\/span><span><br>\n<\/span><span>\u00a0 {<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 &#8220;route&#8221;: [<\/span>\u00a0<span>&#8220;LAX&#8221;, <\/span><span>&#8220;MAD&#8221;<\/span><span>\u00a0]<\/span><span><br>\n<\/span><span>\u00a0 },<\/span><span><br>\n<\/span><span>\u00a0 {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;route&#8221;: [<\/span>\u00a0<span>&#8220;LAX&#8221;, <\/span><span>&#8220;LHR&#8221;, <\/span><span>&#8220;MAD&#8221; <\/span><span>]<\/span><span><br>\n<\/span><span>\u00a0 },<\/span><span><br>\n<\/span><span>\u00a0 {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;route&#8221;: [<\/span>\u00a0<span>&#8220;LAX&#8221;, <\/span><span>&#8220;OPO&#8221;, <\/span><span>&#8220;MAD&#8221; <\/span><span>]<\/span><span><br>\n<\/span><span>\u00a0 }<\/span><span><br>\n<\/span><span>]<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Hierarchical Data Structure<\/span><\/h3>\n\n\n\n<p><span>You can also use\u00a0 Recursive CTE to traverse a hierarchical data structure such as an organization hierarchy.\u00a0 <\/span><\/p>\n\n\n\n<p><a href=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image2-2-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15510\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image2-2-2.png\" alt=\"Hierarchical data structure\" width=\"321\" height=\"126\"><\/a><a href=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image4-2-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15511\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image4-2-1.png\" alt=\"\" width=\"272\" height=\"186\"><\/a><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr>\n<td><b>SQL++ Query<\/b><\/td>\n<td><b>Results<\/b><\/td>\n<\/tr>\n<tr>\n<td><i><span>\/* List all employees and their org hierarchy *\/<\/span><\/i><span><br>\n<\/span><span><br>\n<\/span><span>WITH RECURSIVE orgHier as (<\/span><span><br>\n<\/span><span> \u00a0 <\/span><b>SELECT<\/b><span> [<\/span><span>e<\/span><span>.emp_name] hier, <\/span><span>e<\/span><span>.emp_id, <\/span><span>0<\/span><span> lvl <\/span><span><br>\n<\/span><span> \u00a0 \u00a0 <\/span><b>FROM<\/b><span> employee <\/span><span>e<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 \u00a0 <\/span><b>WHERE<\/b> <span>e<\/span><span>.manager_id <\/span><b>is<\/b> <span>null<\/span><span><br>\n<\/span><span>\u00a0 <\/span><b>UNION<\/b><span><br>\n<\/span><span>\u00a0 \u00a0 <\/span><b>SELECT<\/b> <span>ARRAY_APPEND<\/span><span>(o.hier, e1.emp_name) hier,<br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span>e1.emp_id,\u00a0 o.lvl+<\/span><span>1<\/span><span>\u00a0 lvl<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 <\/span><b>FROM<\/b><span> employee e1<br>\n<\/span><b>\u00a0 \u00a0 JOIN<\/b><span> orgHier o <\/span><span><br>\n<\/span><b>\u00a0 \u00a0ON<\/b><span> e1.manager_id=o.emp_id<\/span><span><br>\n<\/span><span>)<\/span><span><br>\n<\/span><b>SELECT<\/b><span> o.* <\/span><b>FROM<\/b><span> orgHier o;<\/span><\/td>\n<td><span>[ <\/span><span><br>\n<\/span><span>\u00a0 {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;emp_id&#8221;: 1,<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;hier&#8221;: [\u00a0 \u00a0 \u00a0 &#8220;matt&#8221;\u00a0 \u00a0 ],<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;lvl&#8221;: 0<\/span><span><br>\n<\/span><span>\u00a0 },<\/span><span><br>\n<\/span><span>\u00a0 {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;emp_id&#8221;: 2,<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;hier&#8221;: [\u00a0 \u00a0 \u00a0 &#8220;matt&#8221;,\u00a0 \u00a0 \u00a0 &#8220;emily&#8221;\u00a0 \u00a0 ],<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;lvl&#8221;: 1<\/span><span><br>\n<\/span><span>\u00a0 },<\/span><span><br>\n<\/span><span>\u00a0 {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;emp_id&#8221;: 3,<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;hier&#8221;: [\u00a0 \u00a0 \u00a0 &#8220;matt&#8221;,\u00a0 \u00a0 \u00a0 &#8220;mike&#8221;\u00a0 \u00a0 ],<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;lvl&#8221;: 1<\/span><span><br>\n<\/span><span>\u00a0 },<\/span><span><br>\n<\/span><span>\u00a0 {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;emp_id&#8221;: 5,<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;hier&#8221;: [\u00a0 \u00a0 \u00a0 &#8220;matt&#8221;,\u00a0 \u00a0 \u00a0 &#8220;mike&#8221;,\u00a0 \u00a0 \u00a0 &#8220;alex&#8221;\u00a0 \u00a0 ],<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;lvl&#8221;: 2<\/span><span><br>\n<\/span><span>\u00a0 },<\/span><span><br>\n<\/span><span>\u00a0 {\u00a0 \u00a0 &#8220;emp_id&#8221;: 4,<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;hier&#8221;: [\u00a0 \u00a0 \u00a0 &#8220;matt&#8221;,\u00a0 \u00a0 \u00a0 &#8220;emily&#8221;,\u00a0 \u00a0 \u00a0 &#8220;sarah&#8221;\u00a0 \u00a0 ],<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;lvl&#8221;: 2<\/span><span><br>\n<\/span><span>\u00a0 },<\/span><span><br>\n<\/span><span>\u00a0 {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;emp_id&#8221;: 6,<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;hier&#8221;: [\u00a0 \u00a0 \u00a0 &#8220;matt&#8221;,\u00a0 \u00a0 \u00a0 &#8220;emily&#8221;,\u00a0 \u00a0 \u00a0 &#8220;lisa&#8221;\u00a0 \u00a0 ],<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 &#8220;lvl&#8221;: 2<\/span><span><br>\n<\/span><span>\u00a0 }<\/span><span><br>\n<\/span><span>]<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p><i><span>For more information, please refer to the Couchbase documentation on <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/with-recursive.html\">recursive querying<\/a>.\u00a0<\/span><\/i><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Developer Efficiency<\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span>KV Range Scan<\/span><\/h3>\n\n\n\n<p><span>Key\/Value (K\/V) operations in Couchbase are the most efficient way to access data stored in the database. These operations use the unique key of a document to perform read, write, and update actions.\u00a0 However, these operations work on an individual document basis. For larger data retrieval use cases, we recommend using the Query service&#8217;s SQL++ for your applications.<\/span><\/p>\n\n\n\n<p><span>However, there are cases where it is not economically feasible to set up query and indexing nodes, you now have the option to use KV Range Scan. The new feature allows your applications to iterate over all the documents based on a key range, a key prefix, or a random sampling. The APIs internally send the requests to multiple vbuckets based on the <em>max_concurrency<\/em> setting, to load balance across the data nodes. The vbucket streams are then logically merged and returned as one <em>stream<\/em>\u00a0to the application.<\/span><\/p>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr>\n<td><b>KV Get<\/b><\/td>\n<td><b>KV Range Scan<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>public<\/b> <b>class<\/b> <b>CouchbaseReadHotelExample<\/b><span> {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 <\/span><b>public<\/b> <b>static<\/b> <b>void<\/b> <b>main<\/b><span>(String[] args) {<\/span><span><br>\n<\/span><i><span>\u00a0 \u00a0 \/\/ Connect to the cluster<\/span><\/i><span><br>\n<\/span><span>\u00a0 \u00a0 Cluster cluster = Cluster.connect(<\/span><span>&#8220;couchbase:\/\/localhost&#8221;<\/span><span>,<\/span><span> &#8220;username&#8221;<\/span><span>, <\/span><span>&#8220;password&#8221;<\/span><span>);<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span><br>\n<\/span><i><span>\u00a0 \u00a0 \/\/ Get a reference to the &#8216;travel-sample&#8217; bucket<\/span><\/i><span><br>\n<\/span><span>\u00a0 \u00a0Bucket bucket = cluster.bucket(<\/span><span>&#8220;travel-sample&#8221;<\/span><span>);<\/span><span><br>\n<\/span><i><span>\u00a0 \u00a0\/\/ Access the &#8216;inventory&#8217; scope and &#8216;hotel&#8217; collection<br>\n<\/span><\/i>\u00a0 \u00a0Scope inventoryScope = bucket.scope(<span>&#8220;inventory&#8221;<\/span><span>);<br>\n<\/span>\u00a0 \u00a0Collection hotelCollection = inventoryScope.collection(<span>&#8220;hotel&#8221;<\/span><span>);<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span><br>\n<\/span><span>\u00a0 String documentKey = <\/span><span>&#8220;hotel_12345&#8221;<\/span><span>;\u00a0<\/span><span>\u00a0 GetResult getResult = hotelCollection.get(documentKey);<\/span><\/td>\n<td><b><br>\npublic static void main(String&#8230; args) {<br>\n<\/b><span>\u00a0 \u00a0 Cluster cluster = Cluster.connect(<\/span><span>&#8220;couchbase:\/\/localhost&#8221;<\/span><span>, <\/span><span>&#8220;username&#8221;<\/span><span>, <\/span><span>&#8220;password&#8221;<\/span><span>);<\/span><b><span>\u00a0 \u00a0 <\/span>Bucket bucket = cluster.bucket(&#8220;travel-sample&#8221;);<br>\n<\/b><b><span>\u00a0 \u00a0 <\/span>Scope scope = bucket.scope(&#8220;_default&#8221;);<br>\n<\/b><b><span>\u00a0 \u00a0 <\/span>Collection collection = scope.collection(&#8220;_default&#8221;);<\/b><span>\u00a0 \u00a0 System.out.println(&#8220;nExample: [range-scan-range]&#8221;);<\/span>\n<p><span>\u00a0 \u00a0 \/\/ tag::rangeScanAllDocuments[]<br>\n<\/span><span>\u00a0 \u00a0 Stream&lt;ScanResult&gt; results = collection.scan(<br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ScanType.rangeScan(null, null)<br>\n<\/span><span>\u00a0 \u00a0 );<br>\n<\/span><span>\u00a0 \u00a0 results.forEach(System.out::println);<br>\n<\/span><span>\u00a0 \u00a0 \/\/ end::rangeScanAllDocuments[]<\/span><\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p><span>For more information, please refer to the <a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/howtos\/kv-operations.html#kv-range-scan\">Couchbase KV Operations documentation<\/a>.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Query Sequential Scan<\/span><\/h3>\n\n\n\n<p><span>Building on the KV Range Scan functionality, Query Sequential Scan now allows you to perform all database CRUD operations using SQL++ without the need for an index. This capability allows developers to start working with the database with small datasets without having to consider the indexes required for the operations.<\/span><\/p>\n\n\n\n<p><span>From the query perspective, the query plan will choose any available indexes for the query. But if none were found, then it will fall back to using Sequential Scan. The query plan will also show the use of Sequential Scan, instead of Index Scan.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr>\n<td><span>\/\/ Number of flights from SFO-&gt;LHR by airline<\/span><span><br>\n<\/span><b>SELECT<\/b><span> a.name, <\/span><span>array_count<\/span><span>(r.schedule) flights<\/span><span><br>\n<\/span><b>FROM<\/b><span> route r <\/span><span><br>\n<\/span><b>INNER<\/b> <b>JOIN<\/b><span> airline a <\/span><b>ON<\/b><span> r.airline = a.iata<\/span><span><br>\n<\/span><b>WHERE<\/b><span> r.sourceairport=<\/span><span>&#8216;SFO&#8217;<\/span> <b>AND<\/b><span> r.destinationairport=<\/span><span>&#8216;LHR&#8217;<\/span><span>;<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2024\/03\/image_2024-03-25_123324193.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-15514\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image_2024-03-25_123324193-1024x497-1.png\" alt=\"\" width=\"900\" height=\"437\"><\/a><\/p>\n\n\n\n<p><span>Please note that Sequential Scan is suitable for small development datasets. Indexes should still be used where query performance is a priority.<\/span><\/p>\n\n\n\n<p><i><span>For more information, please refer to the Couchbase documentation on <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/indexes\/query-without-index.html#sequential-scans\">sequential scans<\/a>.<\/span><\/i><i><\/i><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Query Read from Replica<\/span><\/h3>\n\n\n\n<p><span>Read from Replica is part of the High Availability feature that is available with all Couchbase services. When using the SDK for the KV operations, a replica read allows the application to read from a data node with replica vbucket when the active copy might not be available, such as during failover.\u00a0<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr>\n<td><b>try<\/b><span> {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 <\/span><i><span>\/\/ Attempt to read from the active node<\/span><\/i><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 GetResult result = collection.get(documentKey);<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 System.out.println(<\/span><span>&#8220;Document from active node: &#8220;<\/span><span> + result.contentAsObject());<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 } <\/span><b>catch<\/b><span> (DocumentNotFoundException activeNodeException) {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 System.out.println(<\/span><span>&#8220;Active node read failed, attempting replica read&#8230;&#8221;<\/span><span>);<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 <\/span><i><span>\/\/ If the active node read fails, attempt to read from any available replica<\/span><\/i><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 <\/span><b>try<\/b><span> {<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 GetReplicaResult replicaResult = collection.getAnyReplica(documentKey);<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.out.println(<\/span><span>&#8220;Document from replica: &#8220;<\/span><span> + replicaResult.contentAsObject());<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 } <\/span><b>catch<\/b><span> (Exception replicaReadException) {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.err.println(<\/span><span>&#8220;Error fetching document from replica: &#8220;<\/span><span>\u00a0+ replicaReadException.getMessage());<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 }<\/span><span><br>\n<\/span><span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p><span>However this approach can&#8217;t be applied when the application uses the SDK to execute a SQL++ query. This is because the data fetch operation happens in the query service layer. In the example below, without Query Read from Replica,\u00a0 if there is a problem with the active data node where the query is fetching from, the query will return a timeout error to the application. Perform a retry in the application below would mean re-executing the entire query all over again.<\/span><\/p>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr>\n<td><b>try<\/b><span> {<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 \u00a0 <\/span><i><span>\/\/ Execute a N1QL query<\/span><\/i><span><br>\n<\/span><span> \u00a0 \u00a0 \u00a0 String statement = <\/span><span>&#8220;SELECT * FROM `<\/span><span>travel-sample`<\/span><span>.inventory.hotel WHERE city = &#8216;San Francisco&#8217; LIMIT 10;&#8221;<\/span><span>;<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 \u00a0 QueryResult result = cluster.query(statement);<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 <\/span><i><span>\/\/ Iterate through the rows in the result set<\/span><\/i><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 <\/span><b>for<\/b><span> (QueryRow row : result.rows()) {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.out.println(row);<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 }<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 } <\/span><b>catch<\/b><span> (QueryException e) {<\/span><span><br>\n<\/span><span>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 System.err.println(<\/span><span>&#8220;Query failed: &#8220;<\/span><span> + e.getMessage());<\/span><span><br>\n<\/span><span> \u00a0 \u00a0 }<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p><span>Couchbase 7.6 now supports Query Read from Replica. This means the query service could switch the connection to an alternative data node, if\u00a0 it receives a <em>kvTimeout<\/em> from the data node that it was fetching from. The logic of switching to a different data node is performed transparently within the query service, no action is required by the application.<\/span><\/p>\n\n\n\n<p><a href=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image1-2-6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15513\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image1-2-6.png\" alt=\"\" width=\"509\" height=\"318\"><\/a><\/p>\n\n\n\n<p><span>When using Query Read from Replica, applications should be mindful of potential data inconsistencies, especially in environments with heavy write activity. Continuous data replication across data nodes means that as the query service switches between nodes during the\u00a0 fetch operations, inconsistencies may arise. This scenario is more likely in systems experiencing frequent data updates, where the replication process could lead to slight delays in synchronization across nodes.<\/span><\/p>\n\n\n\n<p><span>For this reason, the application has the option to control the Query Read from Replica. This can be enabled\/disabled at the request, node or cluster level setting.<\/span><\/p>\n\n\n\n<p><i><span>For more information, please refer to the <a href=\"https:\/\/docs.couchbase.com\/server\/current\/manage\/manage-settings\/general-settings.html#query-settings\">Couchbase query settings documentation<\/a>.<\/span><\/i><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>SQL++ Sequence<\/span><\/h3>\n\n\n\n<p><span>You can now use SQL++ to\u00a0 create a sequence object that is maintained within the Couchbase server. The sequence object generates a sequence of numeric values that are guaranteed to be unique within the database. The applications can use Couchbase SQL++ sequence to ensure a single counter to serve multiple clients.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<tbody>\n<tr>\n<td><span>\/\/ Create SEQUENCE syntax<\/span>\n<p><b>CREATE<\/b><span> SEQUENCE [<\/span><b>IF<\/b> <b>NOT<\/b> <b>EXISTS<\/b><span>] &lt;name&gt; [<\/span><b>IF<\/b> <b>NOT<\/b> <b>EXISTS<\/b><span>] <\/span><span>[ <\/span><b>WITH<\/b><span> &lt;options&gt;]<\/span><span><br>\n<\/span><b>ALTER<\/b><span> SEQUENCE &lt;name&gt; [<\/span><b>WITH<\/b><span> &lt;options&gt;]<\/span><span><br>\n<\/span><b>DROP<\/b><span> SEQUENCE &lt;name&gt; [<\/span><b>IF<\/b> <b>EXISTS<\/b><span>]<\/span><span><br>\n<\/span><span>NEXTVAL <\/span><b>FOR<\/b><span> &lt;name&gt;<\/span><span><br>\n<\/span><span>PREVVAL <\/span><b>FOR<\/b><span> &lt;name&gt;<\/span><span><br>\n<\/span><span>\/\/ Examples<\/span><span><br>\n<\/span><b>CREATE<\/b><span> SEQUENCE myBucket.myScope.ordNum <\/span><b>START<\/b> <b>WITH<\/b> <span>1000<\/span><span> CACHE <\/span><span>100<\/span><span>;<\/span><span><br>\n<\/span><span>ALTER SEQUENCE myBucket.myScope.ordNum <\/span><span>WITH {&#8220;max&#8221;: 2000};<\/span><span><br>\n<\/span><b>INSERT<\/b> <b>INTO<\/b><span> orders <\/span><b>VALUES<\/b><span> (<\/span><span>uuid<\/span><span>(),<\/span><span>\u00a0{<\/span><span>&#8220;num&#8221;<\/span><span>:NEXT <\/span><b>VALUE<\/b> <b>FOR<\/b><span> ordNum,<\/span><span>&#8220;customer&#8221;<\/span><span>:<\/span><span>&#8220;Alex&#8221;<\/span><span>});<\/span><span><br>\n<\/span><b>DROP<\/b><span> SEQUENCE myBucket.myScope.ordNum <\/span><b>IF<\/b> <b>EXISTS<\/b><span>;<\/span><\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p><i><span>For more information, please refer to the <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/createsequence.html\">Couchbase sequence documentation<\/a>.\u00a0<\/span><\/i><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Thank you for reading, we hope you enjoy these new features. More 7.6-related posts will be coming out soon.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.couchbase.com\/downloads\/?family=couchbase-server\">Download Couchbase server 7.6<\/a><\/li>\n\n\n<li><a href=\"https:\/\/cloud.couchbase.com\/sign-up\">Try Couchbase Capella<\/a><\/li>\n\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We are thrilled to announce the launch of Couchbase 7.6, a groundbreaking update poised to redefine the landscape of database technology. This latest release is a testament to our commitment to enhancing database technology, with a significant leap in AI and machine learning integration with Vector Search, LangChain integration, empowering developers to build more intelligent [&hellip;]<\/p>\n","protected":false},"author":26326,"featured_media":3416,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[598,54,362,441,18,715],"tags":[800,601,198],"ppma_author":[341],"class_list":["post-3417","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence-ai","category-couchbase-server","category-indexing","category-search","category-n1ql-query","category-vector-search","tag-couchbase-7-6","tag-data-replication","tag-graph-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Couchbase Server 7.6 Features That Developers Will Love<\/title>\n<meta name=\"description\" content=\"With a leap in AI\/ML integration, Couchbase Server 7.6 empowers developers to build more intelligent and responsive applications. View them all here.\" \/>\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\/couchbase-server-7-6-top-developer-features\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Server 7.6 Top New Features For Developers\" \/>\n<meta property=\"og:description\" content=\"With a leap in AI\/ML integration, Couchbase Server 7.6 empowers developers to build more intelligent and responsive applications. View them all here.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-7-6-top-developer-features\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-25T19:10:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-7.6.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Binh Le\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Binh Le\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/\"},\"author\":{\"name\":\"Binh Le\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/f89064928e262c71eb43bee996c48c63\"},\"headline\":\"Couchbase Server 7.6 Top New Features For Developers\",\"datePublished\":\"2024-03-25T19:10:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/\"},\"wordCount\":1944,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-7.6.jpg\",\"keywords\":[\"Couchbase 7.6\",\"Data Replication\",\"graph database\"],\"articleSection\":[\"Artificial Intelligence (AI)\",\"Couchbase Server\",\"Indexing\",\"Search\",\"SQL++ \\\/ N1QL Query\",\"Vector Search\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/\",\"name\":\"Couchbase Server 7.6 Features That Developers Will Love\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-7.6.jpg\",\"datePublished\":\"2024-03-25T19:10:35+00:00\",\"description\":\"With a leap in AI\\\/ML integration, Couchbase Server 7.6 empowers developers to build more intelligent and responsive applications. View them all here.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-7.6.jpg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-7.6.jpg\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-server-7-6-top-developer-features\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Server 7.6 Top New Features For Developers\"}]},{\"@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\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/f89064928e262c71eb43bee996c48c63\",\"name\":\"Binh Le\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g5b68c37e30928a9d7b2c8470b1a303b7\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g\",\"caption\":\"Binh Le\"},\"description\":\"Binh Le is a Principal Product Manager for Couchbase Query service. Prior to Couchbase, he worked at Oracle and led the product management team for Sales Cloud Analytics and CRM OnDemand. Binh holds a Bachelor's Degree in Computer Science from the University of Brighton, UK.\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/pt\\\/author\\\/binh-le-2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Server 7.6 Features That Developers Will Love","description":"With a leap in AI\/ML integration, Couchbase Server 7.6 empowers developers to build more intelligent and responsive applications. View them all here.","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\/couchbase-server-7-6-top-developer-features\/","og_locale":"pt_BR","og_type":"article","og_title":"Couchbase Server 7.6 Top New Features For Developers","og_description":"With a leap in AI\/ML integration, Couchbase Server 7.6 empowers developers to build more intelligent and responsive applications. View them all here.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-7-6-top-developer-features\/","og_site_name":"The Couchbase Blog","article_published_time":"2024-03-25T19:10:35+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-7.6.jpg","type":"image\/jpeg"}],"author":"Binh Le","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Binh Le","Est. reading time":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/"},"author":{"name":"Binh Le","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63"},"headline":"Couchbase Server 7.6 Top New Features For Developers","datePublished":"2024-03-25T19:10:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/"},"wordCount":1944,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-7.6.jpg","keywords":["Couchbase 7.6","Data Replication","graph database"],"articleSection":["Artificial Intelligence (AI)","Couchbase Server","Indexing","Search","SQL++ \/ N1QL Query","Vector Search"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/","name":"Couchbase Server 7.6 Features That Developers Will Love","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-7.6.jpg","datePublished":"2024-03-25T19:10:35+00:00","description":"With a leap in AI\/ML integration, Couchbase Server 7.6 empowers developers to build more intelligent and responsive applications. View them all here.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-7.6.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-7.6.jpg","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-6-top-developer-features\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Server 7.6 Top New Features For Developers"}]},{"@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\/sites\/5\/2026\/06\/logo.svg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","width":"1024","height":"1024","caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f89064928e262c71eb43bee996c48c63","name":"Binh Le","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g5b68c37e30928a9d7b2c8470b1a303b7","url":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a939f48df6447844a8780bec264bb3be21d589336f3915fabc557075a68fa374?s=96&d=mm&r=g","caption":"Binh Le"},"description":"Binh Le is a Principal Product Manager for Couchbase Query service. Prior to Couchbase, he worked at Oracle and led the product management team for Sales Cloud Analytics and CRM OnDemand. Binh holds a Bachelor's Degree in Computer Science from the University of Brighton, UK.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/binh-le-2\/"}]}},"acf":[],"authors":[{"term_id":341,"user_id":26326,"is_guest":0,"slug":"binh-le-2","display_name":"Binh Le","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/3417","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\/26326"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=3417"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/3417\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/3416"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=3417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=3417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=3417"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=3417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}