{"id":7363,"date":"2019-08-09T10:00:19","date_gmt":"2019-08-09T17:00:19","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7363"},"modified":"2023-05-25T04:29:32","modified_gmt":"2023-05-25T11:29:32","slug":"introducing-collections-developer-preview-in-couchbase-server-6-5","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/","title":{"rendered":"Intro to Collections &#8211; Dev Preview in Couchbase Server 6.5"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Couchbase, a document database, allows great flexibility in storing different types of documents in a single bucket (bucket being the equivalent of a database). There is a frequent need to refer to documents of a similar type together e.g. an apparel retailer may want to separate out all clothes from all shoes. They can do this today with Couchbase by using key prefixes or type fields, but it does make the application more cumbersome.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Having containerization of similar items at the database layer not only makes the application simpler but allows for efficiencies in data processing at its lowest levels. Further, having additional levels of containment under buckets allow for access control at a finer granularity than buckets. <\/span><\/p>\n<p><span style=\"font-weight: 400\">This opens the door for having a more scalable multi-tenant platform with Couchbase than using buckets would allow. It is with these goals that we developed the feature referred to as \u2018Collections\u2019.<\/span><\/p>\n<p><strong>Couchbase Server 6.5 makes available a Developer Preview of Collections.<\/strong><\/p>\n<p><span style=\"font-weight: 400\">In this blog, I will describe at a high level what collections are, what use cases they enable, and the functionality they provide. Sample code is shown in this <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/get-started-with-couchbase-collections-using-the-demo-app\/\"><span style=\"font-weight: 400\">blog post by Johan<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><i><span style=\"font-weight: 400\">Note: A Developer Preview feature cannot be used in production. Read detailed guidelines regarding Developer Preview here: <\/span><\/i><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/developer-preview\/preview-mode.html\"><i><span style=\"font-weight: 400\">Developer Preview Documentation<\/span><\/i><\/a><i><span style=\"font-weight: 400\">.<\/span><\/i><\/p>\n<h2><span style=\"font-weight: 400\">What are Collections?<\/span><\/h2>\n<p><span style=\"font-weight: 400\">They are logical data containers inside a Couchbase bucket that group similar data, just like a \u2018Table\u2019 does in a relational database.<\/span><\/p>\n<p><span style=\"font-weight: 400\">There is also another level available for data organization called \u2018Scope\u2019 similar to a \u2018Schema\u2019 in a relational database. The namespace within each scope is independent of others, hence you can have the same collection names in different scopes. Similarly, document keys need to be unique only within a collection and hence documents with the same key can exist in different collections.<\/span><\/p>\n<p><span style=\"font-weight: 400\">With this new introduction, role-based access controls can now be applied at the cluster, bucket, scope and collection levels.<\/span><\/p>\n<p><i><span style=\"font-weight: 400\">Note: The Developer Preview does not have the scope and collection-level RBAC but it will be available with the production version in Couchbase 7.0.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400\">For a seamless upgrade, and for backward compatibility, every bucket has a \u2018_default\u2019 scope and the \u2018_default\u2019 scope has a \u2018_default\u2019 collection. The _default collection provides backward compatibility as a direct reference to the bucket will automatically map to the _default collection. Also, on upgrade, all existing data will automatically go to the _default collection.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">While the _default collection is provided as a backward compatibility mechanism, it is recommended that new applications should be written using a named collection.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7364 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/collections_sample_hierarchy-1024x820.png\" alt=\"an example data containment hierarchy using scopes and collections in couchbase\" width=\"900\" height=\"721\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/collections_sample_hierarchy-1024x820.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/collections_sample_hierarchy-300x240.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/collections_sample_hierarchy-768x615.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/collections_sample_hierarchy-1536x1230.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/collections_sample_hierarchy-20x16.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/collections_sample_hierarchy-1320x1057.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/collections_sample_hierarchy.png 1738w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h2><span style=\"font-weight: 400\">Simplified Data Organization with Collections<\/span><\/h2>\n<p><span style=\"font-weight: 400\">As mentioned earlier, the new logical groupings enable better data organization, similar to tables in a relational database.<br \/>\nBenefits include:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Easier mapping of relational schemas to Couchbase by creating a collection for a corresponding relational table.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Ability to refer to similar documents as a unit for various purposes such as building an index, setting up replication, querying, backup\/restore, etc.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">More scalable indexing as the data service has to only send the documents for the collection rather than the indexer receiving documents for the whole bucket and filtering them.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Easier to write N1QL &#8211; statements can access a collection as a table directly instead of having to dynamically construct them using an attribute for the type of the document.<\/span><\/li>\n<\/ul>\n<p>For example, compare queries with and without collections:<\/p>\n<p><span style=\"font-weight: 400\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0SELECT * FROM products WHERE type = \u2018clothes\u2019;<\/span><\/p>\n<p>vs.<\/p>\n<p><span style=\"font-weight: 400\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0SELECT * FROM products.clothes;<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Running Multi-tenant Applications with Collections<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Multi-tenant applications require varying levels of isolation between tenants and varying levels of resource sharing of the underlying infrastructure.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Within Couchbase today: <\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400\">complete physical, security and logical isolation is achieved by deploying separate clusters but provides the least sharing of resources\u00a0<\/span><\/li>\n<li><span style=\"font-weight: 400\">security and logical isolation is achieved with multiple buckets per cluster but has its own limits in terms of overhead-per-bucket<\/span><\/li>\n<li><span style=\"font-weight: 400\">multiple tenants placed in a single bucket provides the best sharing of resources but requires the application to handle any security or logical isolation.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">With the introduction of collections (and grouping them into scopes), Couchbase can provide security and logical isolation at more granular levels within a bucket.\u00a0 You can have thousands of groupings in a single bucket hence enabling you to host thousands of tenants in a single cluster. In contrast, the number of buckets that can be hosted in a single cluster is limited (note this limit has increased to 30 in Couchbase Server 6.5 with appropriate sizing), and often not enough for the needs of multi-tenant applications.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Consolidating Microservices with Collections<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Modern applications are often written as a suite of microservices and a single application can be comprised of 100s of microservices. While using a bucket or even cluster per microservice is still an option, collections (and scopes) provide a more scalable alternative to consolidate more microservices into a single Couchbase cluster.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Multi-tenancy and microservice-based architecture are not mutually exclusive. Many multi-tenant applications are written using a microservices architecture. With buckets, scopes, and collections, now you have many levels of containment available to you and this gives you flexibility how you want to map tenants, microservices and tables.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Functionality availability in the Developer Preview<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Once you have turned on the Developer Preview switch in a Couchbase 6.5 cluster (<\/span><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/developer-preview\/preview-mode.html\"><i><span style=\"font-weight: 400\">Developer Preview Documentation<\/span><\/i><\/a><span style=\"font-weight: 400\">), you can start using collections and scopes. A few of the key scope and collection features of the DP functionality include:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Support for them in both Ephemeral and Couchbase buckets<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">All Couchbase SDKs support DDL and CRUD operations on them<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">You can create and drop them &#8211; from the SDK, REST API or couchbase-cli.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">You can perform all CRUD operations on a collection (including <a href=\"https:\/\/www.couchbase.com\/blog\/subdoc-explained\/\">subdoc<\/a>).\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The item count of each collection is available with cbstats.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">DCP protocol is enhanced to stream a single scope or a single collection (in addition to the existing ability to stream a single bucket).<\/span><\/li>\n<\/ul>\n<p>Note: DP is primarily for Key-Value access. RBAC will be available later. Integration with XDCR, Indexing and N1QL, Eventing, Analytics and Mobile will preview later.<\/p>\n<h2><span style=\"font-weight: 400\">Next Steps<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Here are some resources for you to start using the new Developer Preview features:<\/span><\/p>\n<p><strong><i>Download<\/i><\/strong><\/p>\n<p><a href=\"https:\/\/couchbase.com\/downloads?family=server&amp;product=couchbase-server-developer\"><span style=\"font-weight: 400\">Download Couchbase Server 6.5<\/span><\/a><\/p>\n<p><i><span style=\"font-weight: 400\">\u00a0<\/span><\/i><strong><i>Documentation<\/i><\/strong><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/developer-preview\/collections\/collections-overview.html\">Couchbase Server 6.5 Collections Documentation<\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/release-notes\/relnotes.html\"><span style=\"font-weight: 400\">Couchbase Server 6.5 Release Notes<\/span><\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/introduction\/whats-new.html\"><span style=\"font-weight: 400\">Couchbase Server 6.5 What\u2019s New<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><i><span style=\"font-weight: 400\"><strong>Blogs<\/strong>\u00a0<\/span><\/i><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/get-started-with-couchbase-collections-using-the-demo-app\/\">Getting Started with Couchbase Collections using the Demo App<\/a><\/p>\n<p><span class=\"s1\"><a href=\"https:\/\/www.couchbase.com\/blog\/announcing-couchbase-server-6-5-0-beta-whats-new-and-improved\/\">Blog: Announcing Couchbase Server 6.5 \u2013 What\u2019s New and Improved<\/a><\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/tag\/6-5\/\"><b>All 6.5 Blogs<\/b><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Couchbase, a document database, allows great flexibility in storing different types of documents in a single bucket (bucket being the equivalent of a database). There is a frequent need to refer to documents of a similar type together e.g. an [&hellip;]<\/p>\n","protected":false},"author":31463,"featured_media":10519,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1821,1816],"tags":[2378,2364,2103,1903,8906],"ppma_author":[9079],"class_list":["post-7363","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-couchbase-architecture","category-couchbase-server","tag-6-5","tag-collections","tag-microservices","tag-rbac","tag-scopes"],"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>Intro to Collections - Dev Preview in Couchbase Server 6.5<\/title>\n<meta name=\"description\" content=\"Introducing collections! Role-based access control now applies to logical data containers at the cluster, bucket, scope and collection.\" \/>\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\/introducing-collections-developer-preview-in-couchbase-server-6-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Intro to Collections - Dev Preview in Couchbase Server 6.5\" \/>\n<meta property=\"og:description\" content=\"Introducing collections! Role-based access control now applies to logical data containers at the cluster, bucket, scope and collection.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-09T17:00:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-25T11:29:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/nosql-collections-logical.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1588\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Shivani Gupta\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shivani Gupta\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/\"},\"author\":{\"name\":\"Shivani Gupta\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/1015706fa52f49e2e4ab139abda363b1\"},\"headline\":\"Intro to Collections &#8211; Dev Preview in Couchbase Server 6.5\",\"datePublished\":\"2019-08-09T17:00:19+00:00\",\"dateModified\":\"2023-05-25T11:29:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/\"},\"wordCount\":1051,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/nosql-collections-logical.png\",\"keywords\":[\"6.5\",\"collections\",\"microservices\",\"RBAC\",\"scopes\"],\"articleSection\":[\"Application Design\",\"Couchbase Architecture\",\"Couchbase Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/\",\"name\":\"Intro to Collections - Dev Preview in Couchbase Server 6.5\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/nosql-collections-logical.png\",\"datePublished\":\"2019-08-09T17:00:19+00:00\",\"dateModified\":\"2023-05-25T11:29:32+00:00\",\"description\":\"Introducing collections! Role-based access control now applies to logical data containers at the cluster, bucket, scope and collection.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/nosql-collections-logical.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/nosql-collections-logical.png\",\"width\":1588,\"height\":628,\"caption\":\"collections are logical containers for nosql databases\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Intro to Collections &#8211; Dev Preview in Couchbase Server 6.5\"}]},{\"@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\/1015706fa52f49e2e4ab139abda363b1\",\"name\":\"Shivani Gupta\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/958854edc0e632ef5d325afcfa90cf32\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/21281e35ea9170ee660a9c1417cf39f4b04015e2628fd86f3d7580a305964fa8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/21281e35ea9170ee660a9c1417cf39f4b04015e2628fd86f3d7580a305964fa8?s=96&d=mm&r=g\",\"caption\":\"Shivani Gupta\"},\"description\":\"Shivani Gupta is Director of Product Management at Couchbase for the Core Server. Shivani has over 20 years of varied experience in Big Data, Distributed Systems, and Databases at different companies including Oracle, Microsoft, VMWare, Hortonworks and now Couchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/shivani-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Intro to Collections - Dev Preview in Couchbase Server 6.5","description":"Introducing collections! Role-based access control now applies to logical data containers at the cluster, bucket, scope and collection.","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\/introducing-collections-developer-preview-in-couchbase-server-6-5\/","og_locale":"en_US","og_type":"article","og_title":"Intro to Collections - Dev Preview in Couchbase Server 6.5","og_description":"Introducing collections! Role-based access control now applies to logical data containers at the cluster, bucket, scope and collection.","og_url":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-08-09T17:00:19+00:00","article_modified_time":"2023-05-25T11:29:32+00:00","og_image":[{"width":1588,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/nosql-collections-logical.png","type":"image\/png"}],"author":"Shivani Gupta","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Shivani Gupta","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/"},"author":{"name":"Shivani Gupta","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/1015706fa52f49e2e4ab139abda363b1"},"headline":"Intro to Collections &#8211; Dev Preview in Couchbase Server 6.5","datePublished":"2019-08-09T17:00:19+00:00","dateModified":"2023-05-25T11:29:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/"},"wordCount":1051,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/nosql-collections-logical.png","keywords":["6.5","collections","microservices","RBAC","scopes"],"articleSection":["Application Design","Couchbase Architecture","Couchbase Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/","url":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/","name":"Intro to Collections - Dev Preview in Couchbase Server 6.5","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/nosql-collections-logical.png","datePublished":"2019-08-09T17:00:19+00:00","dateModified":"2023-05-25T11:29:32+00:00","description":"Introducing collections! Role-based access control now applies to logical data containers at the cluster, bucket, scope and collection.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/nosql-collections-logical.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/nosql-collections-logical.png","width":1588,"height":628,"caption":"collections are logical containers for nosql databases"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/introducing-collections-developer-preview-in-couchbase-server-6-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Intro to Collections &#8211; Dev Preview in Couchbase Server 6.5"}]},{"@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\/1015706fa52f49e2e4ab139abda363b1","name":"Shivani Gupta","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/958854edc0e632ef5d325afcfa90cf32","url":"https:\/\/secure.gravatar.com\/avatar\/21281e35ea9170ee660a9c1417cf39f4b04015e2628fd86f3d7580a305964fa8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21281e35ea9170ee660a9c1417cf39f4b04015e2628fd86f3d7580a305964fa8?s=96&d=mm&r=g","caption":"Shivani Gupta"},"description":"Shivani Gupta is Director of Product Management at Couchbase for the Core Server. Shivani has over 20 years of varied experience in Big Data, Distributed Systems, and Databases at different companies including Oracle, Microsoft, VMWare, Hortonworks and now Couchbase.","url":"https:\/\/www.couchbase.com\/blog\/author\/shivani-gupta\/"}]}},"authors":[{"term_id":9079,"user_id":31463,"is_guest":0,"slug":"shivani-gupta","display_name":"Shivani Gupta","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/21281e35ea9170ee660a9c1417cf39f4b04015e2628fd86f3d7580a305964fa8?s=96&d=mm&r=g","author_category":"","last_name":"Gupta","first_name":"Shivani","job_title":"","user_url":"","description":"Shivani Gupta is Director of Product Management at Couchbase for the Core Server. Shivani has over 20 years of varied experience in Big Data, Distributed Systems, and Databases at different companies including Oracle, Microsoft, VMWare, Hortonworks and now Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/7363","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\/31463"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=7363"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/7363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/10519"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=7363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=7363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=7363"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=7363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}