# NoSQL -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.536Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Catalyst NoSQL ### Introduction Catalyst Cloud Scale NoSQL is a fully-managed, powerful database that offers a non-relational approach to data storage. It allows you to handle unstructured, semi-structured, and disparate data without relying on traditional SQL models. The highly scalable proprietary infrastructure, powered by Catalyst, ensures that you can create and manage databases effortlessly without worrying about backend tasks like provisioning, configuring, or scaling. This flexibility makes it ideal for modern, data-driven applications. Catalyst offers NoSQL in addition to its conventional relational database, the {{%link href="/en/cloud-scale/help/data-store/introduction/" %}}Data Store{{%/link%}} in the {{%link href="/en/cloud-scale/" %}}CloudScale service{{%/link%}}. Depending on your business requirements and various other factors, such as the possibility of a fixed schema in your database or the need for a read-heavy system, you can determine the right data storage option for your use case. Refer to [this comparison section](#catalyst-data-store-vs-nosql) between Data Store and NoSQL for more help. Catalyst supports the **key-value pair based** document-type data storage in NoSQL, with provisions to store your data in a {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Custom JSON format{{%/link%}} that supports numerous data types. With the ability to partition the data across clusters, NoSQL offers an high-volume storage option, as well as enables multi-level scalability. If you choose to build an application with Catalyst NoSQL, you can easily create tables in your project, configure them, add data, or query data from the Catalyst console. You can also easily migrate your existing NoSQL databases from third-party sources into Catalyst in a few simple steps. Catalyst provides server-side SDKs to perform various NoSQL CRUD operations, such as adding or querying data, in the following programming environments: * {{%link href="/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/" %}}Java{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" %}}Node.js{{%/link%}} * {{%link href="/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/" %}}Python{{%/link%}} Refer to the linked SDK documentations to learn about the SDK methods available. You can also avail NoSQL APIs in Catalyst for these operations. Refer to the {{%link href="/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem" %}}API documentation{{%/link%}} for details. <br> ### Catalyst Data Store vs NoSQL Catalyst provides both Data Store and Catalyst NoSQL as two different data storage options, where the former is a SQL and relational database and the latter, a non-relational database. You can opt for the database suited to your needs based on various factors such as your business logic, your application's data structure, or your usage. Storing unstructured data in a relational database poses problems in schema organization and often leads to data redundancy. You must therefore choose the right storage platform suitable to your use case. Here's a handy guide that will help you decide on the best database option for your requirements. #### Catalyst Data Store Choose Catalyst Data Store if the following conditions are met- * {{%bold%}}Architecture{{%/bold%}}: Your database's architecture is relational, i.e., the data points are related to one another. * {{%bold%}}Data Structur{{%/bold%}}: Your data is well-structured and can be tightly organized into rows and columns to collectively form a table. * {{%bold%}}Schema{{%/bold%}}: The schema of your database is uniform, known in advance, and can be designed and finalized statically ahead of data operations. * {{%bold%}}Query Language{{%/bold%}}: You require using SQL to query, update, and maintain the database. SQL goes well with relational, structured databases. * {{%bold%}}Priorities{{%/bold%}}: Your priority for your database is ACID compliance (Atomicity, Consistency, Isolation, and Durability), and not horizontal scalability. * {{%bold%}}Read/Write Throughput{{%/bold%}}: You require fast, error-free, efficient querying with minimal lag and overhead for a read-heavy database. #### Catalyst NoSQL Choose Catalyst NoSQL if the following conditions are met- * {{%bold%}}Architecture{{%/bold%}}: There are no inter-dependencies or relationships between the data points in your database, and they exist as independent entities. * {{%bold%}}Data Structure{{%/bold%}}: Your database contains semi-structured or unstructured disparate data that cannot be stored in the conventional tabular format, and is loosely organized. * {{%bold%}}Schema{{%/bold%}}: You require the schema of your database to be highly flexible where all the items need not adhere to the same structure, easy to set up, or if it cannot be designed in advance. * {{%bold%}}Data Format{{%/bold%}}: Your data will primarily be in the JSON format, and you require the support of multiple data types. * {{%bold%}}Priorities{{%/bold%}}: Your priority is high scalability, both vertically and horizontally, and you require storage across multiple database nodes with dynamic resource allocation. * {{%bold%}}Read/Write Throughput{{%/bold%}}: You are building a write-heavy system where partitioning storage across distributed clusters with peer-to-peer replication can be beneficial. -------------------------------------------------------------------------------- title: "Benefits" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.536Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/benefits/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Benefits 1. {{%bold%}}Rapid Horizontal and Vertical Auto-Scaling{{%/bold%}} Catalyst offers a low latency, high throughput database solution with NoSQL where its robust servers can auto-scale up or down seamlessly depending on the load. NoSQL's architecture also facilitates both horizontal and vertical scaling, wherein new resources are added to the existing system (vertical scaling), and new server racks are provisioned (horizontal scaling) based on demand. These together ensure that you are provided with a durable and reliable infrastructure upon which you can efficiently store and manage large volumes of data. <br> 2. {{%bold%}}Fully-Managed, Secure Infrastructure for your Database{{%/bold%}} You can experience a fully-managed database that allows you to offload all administrative tasks with Catalyst, as compared to a self-hosted NoSQL database, and focus only on building your schema and working with your data. You also benefit from a secure and trusted platform built on Zoho's tried-and-tested infrastructure that protects your data and provides ease of development, functionality, and performance at scale. <br> 3. {{%bold%}}Fast and Powerful Querying with NoSQL Components{{%/bold%}} Catalyst NoSQL provides dynamic, flexible querying by supporting composite primary keys that are composed of both {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}partition keys and sort keys{{%/link%}}. This proves beneficial while querying, as the former attribute is used to determine the partition an item is stored in, while the latter can determine its range in its sorted order. In addition to these, Catalyst enables you to query using {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}additional sort keys{{%/link%}}, besides the main sort key, as well as create and query with {{%link href="/en/cloud-scale/help/nosql/indexing/introduction/" %}}indexes{{%/link%}} in your table for convenience. These functionalities are advantageous and ensure you can build and deploy high-performance, dependable applications. <br> 4. {{%bold%}}Easy and Secure Third-Party Meta and Data Migration{{%/bold%}} You can utilize a convenient method of migrating large volumes of metadata as well as data stored in third-party services into Catalyst with the click of a few buttons. NoSQL currently supports {{%link href="/en/cloud-scale/help/nosql/third-party-migration/" %}}migration{{%/link%}} from AWS DynamoDB by configuring the required access tokens. This handy feature lets you migrate the schema and meta information of your NoSQL tables set up in AWS in the {{%link href="/en/deployment-and-billing/environments/development-environment/" %}}development environment{{%/link%}} of Catalyst, while availing the ability to migrate data from your AWS NoSQL tables in the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}production environment{{%/link%}}. <br> 5. {{%bold%}}Optimized and Highly Available Storage{{%/bold%}} The general underlying architecture of NoSQL facilitates high data storage optimization through the usage of flexible data models by default. Catalyst NoSQL's support of the key-value pair based data storage eliminates the dependency on object-oriented storage, which further ensures storage optimization. Additionally, partitioning and replicating the storage across clusters provides high fault tolerance and high availability of data, even during crucial situations. <br> 6. {{%bold%}}Cost-Efficient Storage Solution{{%/bold%}} When you choose NoSQL for the right requirements, you can benefit from a highly cost-efficient way of operating and managing your data. Catalyst offers the best pricing for performing CRUD operations in NoSQL through its {{%link href="https://catalyst.zoho.com/pricing1.html" %}}innovating pricing{{%/link%}} strategies, that further enhances cost efficiency. NoSQL also provides an automated way of deleting items from your tables by marking their expiration periods through a {{%link href="/en/cloud-scale/help/nosql/components/#time-to-live-ttl" %}}TTL (Time To Live){{%/link%}} attribute, that saves you from performing unnecessary writes for manual deletion. <br> 7. {{%bold%}}Ease of Access with the Console, Server-Side SDK, and API{{%/bold%}} You can create tables in NoSQL for your project from the Catalyst console, as well as perform table configuration and management, data addition and querying there. NoSQL data operations are also available in the {{%link href="/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/" %}}Python{{%/link%}} SDKs, allowing you to incorporate them into your server-side logic with ease. Catalyst also enables you to avail of multiple {{%link href="/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem" %}}APIs{{%/link%}} for these NoSQL operations. -------------------------------------------------------------------------------- title: "Components of NoSQL" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.536Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/components/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Components of NoSQL To understand the architecture of Catalyst NoSQL databases and learn about working with them, you must first understand the components that make up NoSQL databases. ### Basic Components The fundamental components involved in Catalyst NoSQL are explained below. #### Terminology <br> <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Component Name</th> <th class="w30p">Description</th> </tr> </thead> <tbody> <tr> <td>{{%bold%}}Table{{%/bold%}}</td> <td>A table is the fundamental structure that NoSQL stores data in. Similar to relational databases, tables are composed of records or items. <br><br> The sample table Travel shown below holds data about travel destinations that one could visit, with key information about each place.</td> </tr> <tr> <td>{{%bold%}}Attributes{{%/bold%}}</td> <td>An attribute represents a characteristic of a data value in a table. Attributes in NoSQL are like fields or columns in a relational database wherein each attribute holds data of a specific data type. <br><br> The sample table {{%italics%}}Travel{{%/italics%}} below contains the attributes {{%badge%}}DestinationName{{%/badge%}}, {{%badge%}}Distance{{%/badge%}}, {{%badge%}}BestTimeToVist{{%/badge%}}, {{%badge%}}Location{{%/badge%}}, and {{%badge%}}EstimatedCost{{%/badge%}}.</td> </tr> <tr> <td>{{%bold%}}Items{{%/bold%}}</td> <td>An item is a collection of attributes that hold the data of a single data point. Items in NoSQL are similar to rows or records in a relational database wherein they can contain values for different attributes. <br><br> In the sample table {{%italics%}}Travel{{%/italics%}}, each collection of data uniquely identified by the {{%badge%}}DestinationName{{%/badge%}} is an item. For example, the record "Honululu" that also contains a set of values for the {{%badge%}}Distance{{%/badge%}}, {{%badge%}}BestTimeToVisit{{%/badge%}}, and {{%badge%}}EstimatedCost{{%/badge%}} is an item. Similarly, the record identified by "Prague" with different attribute values is an item.<br><br> {{%note%}}{{%bold%}}Note:{{%/bold%}} The maximum total size of an item provisioned in Catalyst NoSQL is {{%bold%}}400 KB{{%/bold%}}.{{%/note%}}</td> </tr> <tr> <td>{{%bold%}}Data{{%/bold%}}</td> <td>In Catalyst NoSQL's terms, the data of a table is composed of all the attributes and items in it, present in the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Catalyst Custom JSON format{{%/link%}}. <br><br> The JSON code given below for the {{%italics%}}Travel{{%/italics%}} table represents the data of the table. The {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/" %}}Working with Data{{%/link%}} help section elaborates on the custom JSON data format and the supported data types.</td> </tr> </tbody> </table> <br> #### Sample Table Representation {{%bold%}}Table Name{{%/bold%}}: Travel {{%code class="language-json line-numbers" scroll="set-scroll" %}}{ "item": { "DestinationName": { "S": "Honolulu" }, "Distance": { "N": 4960 }, "BestTimeToVist": { "L": [ { "S": "September" }, { "S": "October" }, { "S": "November" } ] }, "EstimatedCost": { "N": 2500 } }, "item": { "DestinationName": { "S": "Prague" }, "Distance": { "N": 4081 }, "Location": { "M": { "Country": { "S": "Czech Republic" }, "Continent": { "S": "Europe" } } }, "EstimatedCost": { "N": 3000 } }, "item": { "DestinationName": { "S": "Marrakesh" }, "Distance": { "N": 3700 }, "BestTimeToVist": { "L": [ { "S": "March" }, { "S": "April" }, { "S": "September" }, { "S": "October" } ] }, "Location": { "M": { "Country": { "S": "Morocco" }, "Continent": { "S": "Africa" } } }, "EstimatedCost": { "N": 1700 } } } {{%/code%}} The *Travel* table represents a simple NoSQL table in the Custom JSON format. The structure includes nested attributes and arrays: the {{%badge%}}BestTimeToVist{{%/badge%}} is present as an array of the data type list ("L"), and the {{%badge%}}Location{{%/badge%}} attribute is a nested attribute of the data type map ("M") containing the keys {{%badge%}}Country{{%/badge%}} and {{%badge%}}Continent{{%/badge%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} The table presented here is a representation of the {{%bold%}}Catalyst Custom JSON format{{%/bold%}}. The formats for constructing data in each server-side SDK in this JSON format varies. To learn about the general syntax of the Catalyst Custom JSON format present in this table, as well as the supported data types and their notations, refer to {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}this section{{%/link%}}. {{%/note%}} <br> ### Table Keys Following a typical NoSQL architecture, Catalyst NoSQL stores data in partitions across clusters, also known as shards. These shards can also be replicated over many servers in mirrors. This distributed storage across multiple nodes breaks down datasets into smaller chunks and promotes optimization. While querying data in a NoSQL table, we must be able to locate the partition a specific item is stored in. Moreover, sorting through a partition to locate an item also involves additional efforts. These are accomplished with the help of distinct keys that identify partitions or sort through them, as described below. #### Terminology <br> <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Component Name</th> <th class="w30p">Description</th> </tr> </thead> <tbody> <tr> <td>{{%bold%}}Partition Key{{%/bold%}}</td> <td>The partition key identifies a logical partition in a distributed storage that a data item is stored in. These logical partitions are mapped to physical storage nodes in the backend through hash functions.<br><br> In the sample table {{%italics%}}Menu{{%/italics%}} discussed below, the attribute Category is a partition key.</td> </tr> <tr> <td>{{%bold%}}Sort Key{{%/bold%}}</td> <td>The primary sort key sorts through a specific partition to locate a data item and returns it in a sorted order if more than 1 item matches with the partition key in the data. This is done by identifying it from a range of key hashes. Catalyst enables you to add a sort key optionally while creating a NoSQL table. <br><br> In the sample table {{%italics%}}Menu{{%/italics%}} discussed below, the attribute {{%badge%}}DishName{{%/badge%}} is regarded as a sort key.</td> </tr> <tr> <td>{{%bold%}}Simple Primary Key{{%/bold%}}</td> <td>A simple primary key in Catalyst NoSQL denotes the partition key alone. <br><br> When you choose to only configure a partition key for a NoSQL table without a sort key, the partition key will act as the primary key of the table by uniquely identifying an item in it. This is similar to the concept of a primary key in a relational database. <br><br> In the sample table {{%italics%}}Travel{{%/italics%}} discussed in the previous section, the attribute {{%badge%}}DestinationName{{%/badge%}} is regarded as the primary key, as this attribute must be present in all items and no two items with the same values for this attribute can exist.<br><br> However, in the sample table {{%italics%}}Menu{{%/italics%}} discussed below, the partition key {{%badge%}}Category{{%/badge%}} does not uniquely identify an item, because multiple items can exist with the same value for it. This is because the {{%italics%}}Menu{{%/italics%}} table uses a composite primary key. </td> </tr> <tr> <td>{{%bold%}}Composite Primary Key{{%/bold%}}</td> <td>The composite primary key includes both a partition key and a sort key to uniquely identify an item, i.e., the combination of both keys act as a primary key. Querying a table with the composite primary key is global, as the data spans across multiple partitions.<br><br> Unlike the simple primary key which requires the partition key to be unique, you can store non-unique values for the partition key here, as long as you define a sort key as well. <br><br> {{%note%}}{{%bold%}}Note:{{%/bold%}} For all the items that have the same partition key in a table, the sort keys must be unique.{{%/note%}} The sample table {{%italics%}}Menu{{%/italics%}} discussed below contains a composite primary key wherein the partition key {{%badge%}}Category{{%/badge%}} and the sort key {{%badge%}}DishName{{%/badge%}} together uniquely identify a data item (a dish).</td> </tr> <tr> <td>{{%bold%}}Additional Sort Keys{{%/bold%}}</td> <td>Catalyst NoSQL allows you to configure additional sort keys, besides the main sort key, which is a part of the composite primary key. <br><br> Additional sort keys are used if you require the sorting to be performed based on a different key besides the main sort key, or if the main sort key is unknown for a specific item. In this case, a combination of the partition key and an additional sort key will be used as a composite primary key.<br><br> Querying a table with additional sort keys are similar to local indexing, as they are all used with the same partition key to sort in that specific partition alone.<br><br> {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst allows you to configure a {{%bold%}}maximum of 5 additional sort keys{{%/bold%}} for a table.{{%/note%}} In the sample table {{%italics%}}Menu{{%/italics%}} discussed below, the attributes {{%badge%}}PreparationTime{{%/badge%}} and {{%badge%}}Calories{{%/badge%}} are configured as additional sort keys.</td> </tr> </tbody> </table> <br> #### Sample Table Representation {{%bold%}}Table Name{{%/bold%}}: Menu {{%code class="language-json line-numbers" scroll="set-scroll" %}}{ "item": { "Category": { "S": "Pizza" }, "DishName": { "S": "Vegan" }, "Calories": { "N": 350 }, "PreparationTime": { "N": 20 }, "Cost": { "N:" 25 }, "DiscountPercentage": { "N": 5 }, "KeyIngredients": { "L": [ { "S": "Pizza Base" }, { "S": "Pizza Sauce" }, { "S": "Olives" }, { "S": "Bell Peppers" }, { "S": "Corn" }, { "S": "Onions" } ] } }, "item": { "Category": { "S": "Pizza" }, "DishName": { "S": "Chicken Overload" }, "Calories": { "N": 450 }, "PreparationTime": { "N": 30 }, "KeyIngredients": { "L": [ { "S": "Pizza Base" }, { "S": "Pizza Sauce" }, { "S": "Fried Chicken" }, { "S": "Paprika" } ] } }, "item": { "Category": { "S": "Sandwich" }, "DishName": { "S": "Vegan" }, "Calories": { "N": 300 }, "PreparationTime": { "N": 20 }, "Cost": { "N": 25 }, "DiscountPercentage": { "N": 15 } } } {{%/code%}} <br> The {{%italics%}}Menu{{%/italics%}} table includes various attributes of which {{%badge%}}Category{{%/badge%}} is the partition key, {{%badge%}}DishName{{%/badge%}} is the sort key, and {{%badge%}}PreparationTime{{%/badge%}} and {{%badge%}}Calories{{%/badge%}} are additional sort keys. {{%note%}}{{%bold%}}Note:{{%/bold%}} The table presented here is a representation of the {{%bold%}}Catalyst Custom JSON format{{%/bold%}}. The formats for constructing data in each server-side SDK in this JSON format varies. To learn about the general syntax of the Catalyst Custom JSON format present in this table, as well as the supported data types and their notations, refer to {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}this section{{%/link%}}. {{%/note%}} The composite primary key enhances data querying. If this table was configured with just the simple primary key, i.e., with Category (example: "Pizza"), then querying it will fetch all items of that {{%badge%}}Category{{%/badge%}} (all the "pizzas" in the menu). However, because it is configured with a composite primary key, i.e, with {{%badge%}}Category{{%/badge%}} and {{%badge%}}DishName{{%/badge%}}, then querying it with both the keys will retrieve a unique item of those values (example: "Pizza" and "Vegan"). Similarly, the additional sort keys provide further flexibility while querying the table within the same partition. You can choose to query the table with the additional sort key {{%badge%}}PreparationTime{{%/badge%}} in combination with the partition key {{%badge%}}Category{{%/badge%}} (example: "Sandwich" and "20"). Before discussing indexing, let's understand a special attribute that Catalyst NoSQL provides for all tables. <br> ### Time To Live (TTL) Time To Live (TTL) provides an automated way of deleting items in the Catalyst NoSQL tables after a specific point of time. You can configure an attribute to hold the expiration timestamp in your table while you create it. You can then add the expiration timestamp of each item in the table in the {{%bold%}}Unix epoch time format{{%/bold%}} while adding the data. Catalyst will permanently delete the items in the table past their expiration time automatically, saving you from performing manual updates and consuming write throughputs. The TTL attribute is handy in removing items that will not be needed beyond a specific point of time or whose validity is short-lived. The items that are deleted by Catalyst automatically after they are past their expiration date will be removed from the table and from anywhere they are indexed. Catalyst operates a {{%bold%}}built-in scheduler{{%/bold%}} once every 24 hours to check for any items whose TTL attribute values indicate expired. This check is performed in all NoSQL tables of all your projects, and the items past their expiration are deleted permanently. Let's understand TTL with an example. Assume we create an attribute named {{%badge%}}Expiry{{%/badge%}} to store the TTL timestamp in the {{%italics%}}Menu{{%/italics%}} table given in the previous section. We can then define the expiration timestamp for all the items in the table in the following manner. #### Sample Table Representation {{%bold%}}Table Name{{%/bold%}}: Menu {{%code class="language-json line-numbers" scroll="set-scroll" %}}{ "item": { "Category": { "S": "Pizza" }, "DishName": { "S": "Vegan" }, "Calories": { "N": 350 }, "PreparationTime": { "N": 20 }, "Cost": { "N:" 25 }, "DiscountPercentage": { "N": 5 }, "Expiry": { "N": 1715755926 } }, "item": { "Category": { "S": "Pizza" }, "DishName": { "S": "Chicken Overload" }, "Calories": { "N": 450 }, "PreparationTime": { "N": 30 }, "Expiry": { "N": 1715565610 } }, "item": { "Category": { "S": "Sandwich" }, "DishName": { "S": "Vegan" }, "Calories": { "N": 300 }, "PreparationTime": { "N": 20 }, "Cost": { "N": 25 }, "DiscountPercentage": { "N": 15 } "Expiry": { "N": 1715700869 } } } {{%/code%}} <br> {{%note%}}{{%bold%}}Note:{{%/bold%}} The table presented here is a representation of the {{%bold%}}Catalyst Custom JSON format{{%/bold%}}. The formats for constructing data in each server-side SDK in this JSON format varies. To learn about the general syntax of the Catalyst Custom JSON format present in this table, as well as the supported data types and their notations, refer to {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}this section{{%/link%}}. {{%/note%}} {{%bold%}}Points to remember:{{%/bold%}} * You will be able to update the TTL attribute value for items in a NoSQL table anytime you require. When the built-in Catalyst scheduler runs, it will identify and process the items based on the latest TTL value. * You can also delete the TTL attribute for items as per your needs, based on the given values -------------------------------------------------------------------------------- title: "Create and Manage Tables" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.537Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/create-manage-tables/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Create and Manage Tables in NoSQL Let's now discuss working with NoSQL tables from the Catalyst console. {{%note%}}{{%bold%}}Note:{{%/bold%}} The configurations made in this section, such as adding and managing tables, can only be done from the remote console, and not through the SDKs or API. You can perform data operations from the server-side SDKs and API. {{%/note%}} You can access NoSQL in your Catalyst project from the {{%link href="/en/cloud-scale/"%}}CloudScale service{{%/link%}} in your console. ### Create a Table To create a table in Catalyst NoSQL in your project: 1. Navigate to the {{%bold%}}CloudScale{{%/bold%}} service in the console, then click {{%bold%}}NoSQL{{%/bold%}}. <br> 2. Click {{%bold%}}Create Table{{%/bold%}}. 3. Enter a name for the table. You must configure the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}{{%italics%}}Partition Key{{%/italics%}}{{%/link%}} by providing a key name and selecting the data type of the key. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can only configure the partition key with the data types String, Numeric, or Binary. To learn about the supported data types and their notations, refer to {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}this section{{%/link%}}. {{%/note%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} You will not be able to modify or delete the partition key configured for a table, or delete the partition key attribute from any data item, after you configure it. Because this is the primary key, all items must include this value. {{%/note%}}<br> 4. You can optionally configure a {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}{{%italics%}}Sort Key{{%/italics%}}{{%/link%}} for the table to include a {{%italics%}}Composite Primary Key{{%/italics%}} by selecting {{%bold%}}Yes{{%/bold%}} for "Include Sort Key?". However, if you only prefer having the partition key ({{%italics%}}Simple Primary Key{{%/italics%}}), then select {{%bold%}}No{{%/bold%}}. <br> If you include a sort key, enter the key name and select the data type of the key. {{%note%}}{{%bold%}}Note:{{%/bold%}} * You will not be able to modify or delete the {{%italics%}}Sort Key{{%/italics%}} in a table, after you configure it. * You can only configure the sort key key with the data types String, Numeric, or Binary. To learn about the supported data types and their notations, refer to {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}this section{{%/link%}}. {{%/note%}} <br> 5. If you require {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}{{%italics%}}Additional Sort Keys{{%/italics%}}{{%/link%}} to be included in your table, you can add them by providing the key name and selecting the data type. You can add multiple keys by clicking (+). {{%note%}}{{%bold%}}Note:{{%/bold%}} * You will not be able to modify or delete the {{%italics%}}Additional Sort Keys{{%/italics%}} in a table, after you configure it. * Catalyst allows you to configure a {{%bold%}}maximum of 5{{%/bold%}} {{%italics%}}Additional Sort Keys{{%/italics%}} in a table. * You can only configure the additional sort key keys with the data types String, Numeric, or Binary. To learn about the supported data types and their notations, refer to {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}this section{{%/link%}}. {{%/note%}} <br> 6. Configure an attribute to store the {{%link href="/en/cloud-scale/help/nosql/components/#time-to-live-ttl" %}}{{%italics%}}TTL timestamp{{%/italics%}}{{%/link%}} for the table. You can add values for this attribute for each item in the table to indicate their expiration date. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can disable the TTL attribute in a table after you configure it. However, you will not be able to change the attribute's name, or enable/configure it again once disabled.{{%/note%}}<br> 7. After you configure the table, click {{%bold%}}Create{{%/bold%}}. The NoSQL table will be created and listed under {{%italics%}}Tables{{%/italics%}} in your project. Catalyst will automatically create a {{%bold%}}unique Table ID{{%/bold%}} for your table that you can use to refer it while performing SDK and API actions. There are three sections in the table: {{%italics%}}Overview{{%/italics%}}, {{%italics%}}Indexes{{%/italics%}}, and {{%italics%}}Data{{%/italics%}}. <br> ### The Overview Section The {{%italics%}}Overview{{%/italics%}} section provides a glimpse of the table's configuration and details. It displays all essential information, such as the unique Table ID, details of the person who created it, the TTL attribute, etc. The {{%italics%}}Storage Size{{%/italics%}} indicates the size of the table. An empty table will contain 0 bytes, as well as 0 data items. Catalyst operates a built-in scheduler once every 24 hours that calculates and updates the {{%italics%}}Storage Size{{%/italics%}} and {{%italics%}}No. of Items{{%/italics%}} of each table. You can also view the partition key, sort key, and additional sort keys configured for the table. The {{%italics%}}No. of Indexes{{%/italics%}} indicates the number of indexes created from the table. Click {{%bold%}}View{{%/bold%}} here to navigate to the Indexes section. <br> ### Edit a Table You can edit a table in NoSQL and modify the table name, or disable the {{%link href="/en/cloud-scale/help/nosql/components/#time-to-live-ttl" %}}TTL attribute{{%/link%}} configured for a table. However, you will not be able to modify the partition key, sort key, and additional sort keys that you set up, or the name of the TTL attribute. To edit a NoSQL table: 1. Click the ellipsis icon from the {{%italics%}}Overview{{%/italics%}} section of the table, then click {{%bold%}}Edit{{%/bold%}}. <br> 2. Modify the required details of the table, then click {{%bold%}}Update{{%/bold%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} If you disable the TTL attribute, you will not be able to enable or configure it again for the table. Disabling the TTL attribute will stop Catalyst from automatically deleting expired data items from the table. {{%/note%}} <br> ### Delete a Table You can permanently delete a table and all the data it contains in NoSQL in the following manner: 1. Click the ellipsis icon from the {{%italics%}}Overview{{%/italics%}} section of the table, then click {{%bold%}}Delete{{%/bold%}}. <br> 2. Click {{%bold%}}Delete{{%/bold%}} in the confirmation pop-up. -------------------------------------------------------------------------------- title: "Query Search" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.537Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/query-search/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Query Search in NoSQL ### Overview Catalyst enables you to perform query searches to read table data in NoSQL from the console, the server-side SDK in {{%link href="/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" %}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/" %}}Python{{%/link%}}, or through {{%link href="/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem" %}}API{{%/link%}}. The Data section in the console includes a query section where you can seach for data and the results will be displayed in it. A query operation in NoSQL is scoped to a partition of the data storage. This means that you can search within a partition for an item based on the partition key alone, in case the table is configured with a simple primary key. If the table is configured with a composite primary key, the search occurs using the combination of a primary key and sort key. You can also utilize additional sort keys that you configured for a table with the combination of the partition key to execute query searches. Refer {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}to this page{{%/link%}} to learn about table keys. You can base a query search off a table or off an index of the table. This will inform Catalyst to look for the appropriate partition and provision the appropriate primary keys for the search. <br> ### Supported Operators Catalyst supports several operators that you can use to execute queries. These operators can only be used with the primary sort key and additional sort keys. Depending upon the data type of the sort keys, the supported operators vary. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can only use the "EQUALS" operator with the partition key. The operators listed below can only be used with the sort key of an index, or the sort key and additional sort keys of a table.{{%/note%}} <br> <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Data Type of the Sort Key</th> <th class="w10p">Supported Operators</th> </tr> </thead> <tbody> <tr> <td>String</td> <td>Equals, Not Equals, Between, Not Between, Greater Than, Lesser Than, Greater Than or Equal To, Lesser Than or Equal To</td> </tr> <tr> <td>Numeric</td> <td>Equals, Not Equals, Between, Not Between, Begins With, Ends With, Greater Than, Lesser Than, Greater Than or Equal To, Lesser Than or Equal To, Contains, Not Contains, In, Not In</td> </tr> </tbody> </table> <br> {{%note%}}{{%bold%}}Note:{{%/bold%}} All the supported operators are available through SDK and API operations, while some of these supported operators are not available in the console search. Refer to the respective SDK and API help documentation for details.{{%/note%}} <br> ### Execute a Query Search You can execute a query search from the Catalyst console to read data from a NoSQL table in the following manner: 1. Navigate to the {{%italics%}}Data{{%/italics%}} section of the table in NoSQL. <br> 2. You can select the table name or any one of the indexes to perform the search in, from the drop-down on top. Catalyst will list the table and all indexes. <br> 3. If the table is configured with the simple primary key, enter a value for the partition key to search. The data type configured for the partition key will be automatically shown. If the table is configured with the composite primary key, enter the value for the partition key, then select the required operator from the list for the sort key and enter a value to search. You can choose the main sort key or any one of the additional sort keys, if configured. The data type configured for the sort key will be automatically shown. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can only use the ["EQUALS" operator](#supported-operators) with the partition key. Depending on the data type of the primary or additional sort key, appropriate operators will be available for selection. {{%/note%}}<br> 4. You can also check the "Enable this to search using ascending sort" box to list the search results in the ascending order. Descending sort will be used by default. If no sort key is configured for the table or the index you select, the sorting order of retrieved data is based on the partition key of the table. 5. After you configure the query parameters, click {{%bold%}}Search{{%/bold%}}. <br> The query results will be displayed in this section. If no results are found, Catalyst will display an appropriate message. You can use the filter option to choose the columns to be displayed, or view the data as JSON, as discussed in the {{%link href="/en/cloud-scale/help/nosql/working-with-data/add-manage-data/#add-data-in-a-table" %}}previous section{{%/link%}}. -------------------------------------------------------------------------------- title: "Third-Party Migration" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.537Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/third-party-migration/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Third-Party Migration ### Introduction Catalyst provides the ability to migrate NoSQL databases from third-party sources. This migration is supported only for databases of the NoSQL type and not for relational or other databases. The provision to migrate a database from an external source enables you to easily switch to Catalyst for your NoSQL needs. If you had been maintaining NoSQL databases for Catalyst applications or microservices in an external environment, you can benefit from integrating it within your Catalyst ecosystem and manage the entire setup here. You can perform the migration from the Catalyst console with just the click of a few buttons. All you would need to do to migrate databases is to provide the required credentials to access the third-party database, and choose the tables to migrate. Catalyst ensures you face zero downtime or latency issues during the migration process. After the database is migrated, you can access the tables in the NoSQL section in console inside your project. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can refer to the {{%link href="https://catalyst.zoho.com/pricing1.html" %}}Pricing page{{%/link%}} for the pricing information of storage as well as CRUD operations in NoSQL.{{%/note%}} <br> Catalyst currently supports migration from this third-party source: {{%bold%}}{{%link href="https://aws.amazon.com/dynamodb/" %}}AWS DynamoDB{{%/link%}}{{%/bold%}} There are two different migration options that you can utilize: * {{%bold%}}Migrating Metadata{{%/bold%}}: This option will only migrate the schema and metadata of your tables from the third-party source. This is available only in the {{%link href="/en/deployment-and-billing/environments/development-environment/" %}}development environment{{%/link%}} in Catalyst. * {{%bold%}}Migrating Data{{%/bold%}}: This option will migrate the data of your tables along with the configurations from the third-party source. This is available only in the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}production environment{{%/link%}} in Catalyst. You can choose the appropriate option you require and perform migration from the suitable environment. <br> ## Migrating from AWS DynamoDB To perform migrations from AWS, you will be required to configure {{%link href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html" %}}{{%bold%}}AWS Access Key Credentials{{%/bold%}}{{%/link%}} with Catalyst. The AWS access key credentials allow you to access AWS resources through their CLI or API. AWS access keys are composed of two parts: Access Key ID and Secret Access Key. You will need to configure both in Catalyst, and also provide information about the {{%link href="https://aws.amazon.com/about-aws/global-infrastructure/regions_az/" %}}AWS region{{%/link%}} your AWS account fall under. {{%note%}}{{%bold%}}Note:{{%/bold%}} Refer to the links provided above to learn about creating or obtaining access key credentials for your AWS account, as well as to find your account's region.{{%/note%}} <br> ### Migrate Metadata from DynamoDB You can migrate metadata of the tables in your AWS DynamoDB while you work in the {{%link href="/en/deployment-and-billing/environments/development-environment/" %}}development environment{{%/link%}} of Catalyst. This is the default environment in Catalyst and therefore, you can access this migration option by default. You can use this option if you prefer creating new data for your database, and only require the table configurations. The metadata migration will migrate the table configurations and index configurations of the tables you select, such as their configured {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}partition keys and sort keys{{%/link%}}, as well as any other meta information or configurations that Catalyst NoSQL supports. To migrate metadata from AWS DynamoDB into Catalyst NoSQL in your project: 1. Navigate to {{%bold%}}NoSQL{{%/bold%}} from the {{%italics%}}CloudScale{{%/italics%}} section from the development environment in the console, then click {{%bold%}}Third-Party Meta Migration{{%/bold%}}. <br> 2. This will open a pop-up. Enter the {{%link href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html" %}}Access Key ID, Secret Access Key, and the region{{%/link%}} of your AWS account. Then, click {{%bold%}}Next{{%/bold%}}. <br> 3. Select the tables whose metadata you want to migrate from your DynamoDB. Then, click {{%bold%}}Import{{%/bold%}}. <br> Catalyst will then schedule the migration process. The time taken to complete the migration depends on the number of tables and their sizes. <br> After the tables are migrated, you will be notified. <br> You can then access the imported tables in your project by refreshing the console. You will find the imported tables with their configurations in {{%italics%}}NoSQL{{%/italics%}}, and you can then proceed to add data. <br> ### Migrate Data from DynamoDB To migrate data of the tables in your AWS DynamoDB, you will first need to access the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}production environment{{%/link%}} in Catalyst. If you have never deployed your Catalyst project to production, you must first do that to enable production. Refer to {{%link href="/en/deployment-and-billing/environments/initial-deployment/" %}}this help page{{%/link%}} for deploying projects to the production environment. Once you are able to access the production environment of your project, you can switch to the production environment in the console from the header. You can use the option to migrate data along with the schema if you require the entire database to be migrated. This will import the data of the tables you select, as well as the configurations and metadata of the tables you select. This includes the table configurations and index configurations of the tables you select, such as their configured {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}partition keys and sort keys{{%/link%}}, as well as any other meta information or configurations that Catalyst NoSQL supports. <br> To migrate data from AWS DynamoDB into Catalyst NoSQL in your project: 1. Navigate to {{%bold%}}NoSQL{{%/bold%}} from the CloudScale section from the production environment in the console, then click {{%bold%}}Third-Party Data Migration{{%/bold%}}. <br> 2. This will open a pop-up. Enter the {{%link href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html" %}}Access Key ID, Secret Access Key, and the region{{%/link%}} of your AWS account. Then, click {{%bold%}}Next{{%/bold%}}. <br> 3. Select the tables whose data you want to migrate from your DynamoDB. Then, click {{%bold%}}Import{{%/bold%}}. Catalyst will then schedule the migration process. The time taken to complete the migration depends on the number of tables, and their sizes based on the volume of the data. <br> After the tables are migrated, you will be notified. <br> You can then access the imported tables with their data in your project. You can update or delete items, or process the data as required. ## Indexing -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.538Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/indexing/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Indexing in NoSQL Catalyst NoSQL provides the ability to create indexes for NoSQL tables that will allow you to execute alternate queries on the table data, without making use of the primary keys. This means that you can create and utilize secondary indexes and search for data items by other attributes besides the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}partition key and sort key{{%/link%}}. Indexes facilitate convenience and add flexibility in data retrieval operations, as come in handy during scenarios that require you to prioritize non-conventional attributes in a table. Querying using indexes quickens the data read process and promotes efficiency. You can also modify or delete indexes in a table based on your requirements without affecting the main table in any manner. ### Architecture of Indexes Catalyst NoSQL indexes span across the entire table and all partitions that the table data is stored in. This cross-partition or {{%bold%}}global indexing{{%/bold%}} feature proves highly beneficial as it allows you to execute queries across all partition keys of a table. Catalyst enables you to create a maximum of 20 indexes for a table. You can configure individual partition keys and sort keys for each index you create. Because the indexing is global, you will be able to configure partition and sort keys different from the ones configured in the main table. Essentially, an index can be regarded as a copy of the main table created with different partition and sort keys for different requirements in querying data. In terms of the architecture, when an index is created for a table, a copy of it is stored in different storage nodes with the same partitioning rules as applicable for the main table. Therefore, when you execute queries based on a secondary index, you can still access all the attributes and data of the table. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst will automatically update indexes when you add, update, or delete data from its base table.{{%/note%}} <br> ### Index Types Catalyst provides three different ways to index a table in NoSQL: * {{%bold%}}Indexing All Attributes{{%/bold%}}: This will create an index of all the attributes in a table. When you choose this option, Catalyst will essentially replicate all the table attributes and store them based on the partition key you configure for the index. * {{%bold%}}Indexing Only Keys{{%/bold%}}: This will index only the partition key, sort key, and the additional sort key attributes, if any, in a table. These key attributes are stored based on the partition key you configure for the index. * {{%bold%}}Indexing Specific Attributes{{%/bold%}}: This will index specific attributes of a table that you select. The select attributes are replicated and stored based on the partition key you configure for the index. When you execute a query based on an index, the partition key and sort key attributes of the table and the index will be returned along with other attributes based on the type you configured. Let's understand indexing better with an example. The Menu table discussed in the previous sections is updated and shown below. #### Sample Table Representation {{%bold%}}Table Name{{%/bold%}}- Menu {{%code class="language-json line-numbers" scroll="set-scroll" %}}{ "item": { "Category": { "S": "Pizza" }, "DishName": { "S": "Vegan" }, "Calories": { "N": 350 }, "PreparationTime": { "N": 20 }, "DiscountPercentage": { "N": 12 }, "KeyIngredients": { "L": [ { "S": "Pizza Base" }, { "S": "Pizza Sauce" }, { "S": "Olives" }, { "S": "Bell Peppers" }, { "S": "Corn" }, { "S": "Onions" } ] } }, "item": { "Category": { "S": "Pizza" }, "DishName": { "S": "Chicken Overload" }, "Cost": { "N": 25 }, "DiscountPercentage": { "N": 15 }, "Calories": { "N": 450 }, "PreparationTime": { "N": 30 } }, "item": { "Category": { "S": "Sandwich" }, "DishName": { "S": "Vegan" }, "Calories": { "N": 300 }, "PreparationTime": { "N": 20 }, "Cost": { "N": 20 }, "DiscountPercentage": { "N": 10 } } } {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} The table presented here is a representation of the {{%bold%}}Catalyst Custom JSON format{{%/bold%}}. The formats for constructing data in each server-side SDK in this JSON format varies. To learn about the general syntax of the Catalyst Custom JSON format present in this table, as well as the supported data types and their notations, refer to {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}this section{{%/link%}}. {{%/note%}} Assume you create an index, {{%italics%}}Pricing{{%/italics%}}, for this table with the following configurations- * {{%bold%}}Partition Key{{%/bold%}}: {{%badge%}}Cost{{%/badge%}} * {{%bold%}}Sort Key{{%/bold%}}: {{%badge%}}DiscountPercentage{{%/badge%}} * {{%bold%}}Index Type{{%/bold%}}: Specific Attributes ({{%badge%}}Calories{{%/badge%}} and {{%badge%}}PreparationTime{{%/badge%}}) Given below is a representation of the created index. #### Sample Index Representation {{%bold%}}Index Name{{%/bold%}}- Pricing {{%code class="language-json line-numbers" scroll="set-scroll" %}}{ "item": { "Cost": { "N": 25 }, "DiscountPercentage": { "N": 15 }, "Category": { "S": "Pizza" }, "DishName": { "S": "Chicken Overload" } "Calories": { "N": 450 }, "PreparationTime": { "N": 30 } }, "item": { "Cost": { "N": 20 }, "DiscountPercentage": { "N": 10 }, "Category": { "N": "Sandwich" }, "DishName": { "N": "Vegan" }, "Calories": { "N": 300 }, "PreparationTime": { "N": 20 } } } {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} Data items that do not contain the partition key of an index are skipped from being indexed. In this example, the item identified by "Pizza" and "Vegan" from the main table is not indexed because it does not include the value for the index's partition key, {{%badge%}}Cost{{%/badge%}}. {{%/note%}} When you execute a query based on the index Pricing, Catalyst will search for items against the attribute {{%badge%}}Cost{{%/badge%}} and will sort the results based on the attribute {{%badge%}}DiscountPercentage{{%/badge%}} if more that one result matches. The selected attributes ({{%badge%}}Calories{{%/badge%}} and {{%badge%}}PreparationTime{{%/badge%}}) will be returned in the query for the matching items, along with the primary keys of the table and the index. -------------------------------------------------------------------------------- title: "Create and Manage Indexes" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.538Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/indexing/create-manage-indexes/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Create and Manage Indexes Let's look at creating and working with indexes in your NoSQL table in the Catalyst console. {{%note%}}{{%bold%}}Note:{{%/bold%}} The configurations made in this section, such as creating and managing indexes, can only be done from the remote console, and not through the SDKs or API. You can perform data operations from the server-side SDKs and API.{{%/note%}} ### Create an Index To create an index for a NoSQL table in your project: 1. Navigate to the {{%italics%}}Indexes{{%/italics%}} section of the table from the NoSQL component, then click {{%bold%}}Add Index{{%/bold%}}. 2. Enter a name for the index. You must configure the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}{{%italics%}}Partition Key{{%/italics%}}{{%/link%}} for the index by providing a key name and selecting the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}data type{{%/link%}} of the key. {{%note%}}{{%bold%}}Note:{{%/bold%}} You will not be able to modify or delete the {{%italics%}}Partition Key{{%/italics%}} of the index, after you configure it. {{%/note%}} 3. You can optionally configure a {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}{{%italics%}}Sort Key{{%/italics%}}{{%/link%}} if you require for the index by selecting {{%bold%}}Yes{{%/bold%}} for "Include Sort Key?". However, if you only prefer having the partition key, then select {{%bold%}}No{{%/bold%}}. If you include a sort key, enter the key name and select the data type of the key. {{%note%}}{{%bold%}}Note:{{%/bold%}} You will not be able to modify or delete the {{%italics%}}Sort Key{{%/italics%}} of the index, after you configure it.{{%/note%}} 4. Select an {{%link href="/en/cloud-scale/help/nosql/indexing/introduction/#index-types" %}}{{%italics%}}Attribute Type{{%/italics%}}{{%/link%}} for the index. If you select {{%bold%}}Include Columns{{%/bold%}}, specify the attributes to index. Catalyst will enable you to add multiple attributes in the window. You can click (-) to remove an attribute. 5. After you configure the index, click {{%bold%}}Create{{%/bold%}}. The index for your NoSQL table will be created and listed in the {{%italics%}}Indexes{{%/italics%}} section. Catalyst will automatically create a {{%bold%}}unique Index ID{{%/bold%}} for your index that you can use to refer it while performing SDK and API actions. <br> ### The Index Section The {{%italics%}}Index{{%/italics%}} section provides a glimpse of all the indexes configured for a particular table and their details. It displays essential information, such as the unique Index ID, the partition key and sort key configured for it, and the size and the number of items in the index. An empty table will contain 0 bytes and 0 data items. Catalyst operates a built-in scheduler once every 24 hours that calculates and updates the {{%italics%}}Storage Size{{%/italics%}} and {{%italics%}}No. of Items{{%/italics%}} of each index. For the indexes created for specific attributes, the index section will display a {{%bold%}}View{{%/bold%}} button to display all attributes that are indexed. You can view the attributes by clicking it. <br> ### Edit an Index You can edit an index created for a table in NoSQL to modify the index name. However, you will not be able to modify the partition key, sort key, or attribute types that you configured for it. To edit the index of a table: 1. Click the ellipsis icon for the index in the {{%italics%}}Indexes{{%/italics%}} section, then click {{%bold%}}Edit{{%/bold%}}. <br> 2. Modify the index name, then click {{%bold%}}Update{{%/bold%}}. <br> ### Delete an Index You can permanently delete the index of a table in NoSQL. This will delete it from the storage and you will no longer be able to execute queries based on the index. To permanently delete an index of a NoSQL table: 1. Click the ellipsis icon for the index in {{%italics%}}Indexes{{%/italics%}} section, then click {{%bold%}}Delete{{%/bold%}}. <br> 2. Click {{%bold%}}Delete{{%/bold%}} in the confirmation pop-up. ## Working with Data -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.538Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/working-with-data/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Working with Data in NoSQL The data units in NoSQL are referred to as *Items*, wherein each data item is similar to a record or row in a relational database, as described in this {{%link href="/en/cloud-scale/help/nosql/components/#basic-components" %}}Terminology{{%/link%}}. Catalyst enables you to perform CRUD operations on your NoSQL tables using the server-side SDKs of {{%link href="/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" %}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/" %}}Python{{%/link%}} and through API. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can also perform CRUD operations from the Catalyst console to test working with data in NoSQL. However, you will only be able to add one item in a table from the console.{{%/note%}} Catalyst supports the key-value pair based document-type data storage with the ability to add data in the Catalyst Custom JSON format, which is explained in the next section. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can add data in the regular JSON format that follows the International standard syntax from the Catalyst console alone to test. However, when working with the SDKs and API, you will only be able to add data in the Custom JSON format.{{%/note%}} Catalyst also enables you to use multiple data types in the JSON data, that you can configure NoSQL attributes with. You can declare the right data type for an attribute while adding or updating data in the table. <br> ### Supported Data Types The data types supported in Catalyst for NoSQL {{%link href="/en/cloud-scale/help/nosql/components/#basic-components" %}}attributes{{%/link%}} are listed below. <br> <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Data Type</th> <th class="w10p">Notation</th> <th class="w30p">Description</th> </tr> </thead> <tbody> <tr> <td>String</td> <td>{{%badge%}}S{{%/badge%}}</td> <td>Stores a sequence of characters </td> </tr> <tr> <td>Number</td> <td>{{%badge%}}N{{%/badge%}}</td> <td>Stores a numerical value</td> </tr> <tr> <td>Binary</td> <td>{{%badge%}}B{{%/badge%}}</td> <td>Stores a binary number that represents a sequence of bytes </td> </tr> <tr> <td>Boolean</td> <td>{{%badge%}}BOOL{{%/badge%}}</td> <td>Stores one of these boolean values: {{%badge%}}true{{%/badge%}} or {{%badge%}}false{{%/badge%}} </td> </tr> <tr> <td>Set of String</td> <td>{{%badge%}}SS{{%/badge%}}</td> <td>A set that stores one or more unique strings </td> </tr> <tr> <td>Set of Numbers</td> <td>{{%badge%}}SN{{%/badge%}}</td> <td>A set that stores a collection of numbers </td> </tr> <tr> <td>Set of Binary</td> <td>{{%badge%}}SB{{%/badge%}}</td> <td>A set that stores a collection of binary numbers as a byte set </td> </tr> <tr> <td>List</td> <td>{{%badge%}}L{{%/badge%}}</td> <td>Stores ordered elements of the same data type </td> </tr> <tr> <td>Map</td> <td>{{%badge%}}M{{%/badge%}}</td> <td>Stores an unordered collection of key-value pair elements </td> </tr> <tr> <td>Null</td> <td>{{%badge%}}NULL{{%/badge%}}</td> <td>Stores only one value: {{%badge%}}NULL{{%/badge%}} </td> </tr> </tbody> </table> To understand the notations and usage of these data types while adding data in NoSQL, refer to the [Catalyst Custom JSON format section](#the-catalyst-custom-json-format). {{%note%}}{{%bold%}}Note:{{%/bold%}} * When you configure a table or an index in NoSQL from the console, Catalyst allows you to only select one of the two data types, {{%bold%}}String{{%/bold%}} or {{%bold%}}Number{{%/bold%}}, for the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}} of the table. This includes the partition key, sort key, and additional sort keys. * While adding or updating data in your NoSQL table, you must ensure that always you add the appropriate value for an attribute that matches the data type that you declare for it. Any mismatches between the data types and values will throw errors.{{%/note%}} <br> ### The Catalyst Custom JSON Format The Catalyst Custom JSON is the format of JSON data that Catalyst can process for NoSQL. The syntax is similar to the standard JSON Format with the addition of specifying the [data type](#supported-data-types) that each attribute is configured with. Let's look at a sample table to understand the Catalyst Custom JSON format. #### Sample Table Representation {{%bold%}}Table Name{{%/bold%}}- Employees {{%code class="language-json line-numbers" scroll="set-scroll" %}}{ "item": { "EmpID": { "N": "10999" }, "FirstName":{ "S": "Paul" }, "LastName":{ "S": "Smith" }, "YearOfJoining":{ "N": 2011 }, "PriorExperience":{ "BOOL": false }, "Location": { "M": { "Country": { "S": "USA" }, "City": { "S": "New York" } } } }, "item": { "EmpID": { "N": "10113" }, "FirstName":{ "S": "Lana" }, "LastName":{ "S": "Belle" }, "YearOfJoining":{ "N": 2019 }, "PriorExperience":{ "BOOL": true }, "Department": { "S": "IT" } }, "item": { "EmpID": { "N": "29123" }, "FirstName":{ "S": "Kevin" }, "LastName":{ "S": "Wilson" }, "YearOfJoining":{ "N": 2023 }, "Clubs":{ "L": [ { "S": "Innovate" }, { "S": "Swimmers of NPY" }, { "S": "Technova" } ] } } } {{%/code%}} The *Employees* table includes nested JSON properties under the {{%badge%}}Location{{%/badge%}} attribute, as well as an attribute, {{%badge%}}Clubs{{%/badge%}}, with array values. In this table, each attribute is denoted with the data type configured for it, such as {{%badge%}}N{{%/badge%}} (Number) for {{%badge%}}EmpI{{%/badge%}} and {{%badge%}}YearOfJoining{{%/badge%}}, or {{%badge%}}S{{%/badge%}} for {{%badge%}}FirstName{{%/badge%}} and {{%badge%}}LastName{{%/badge%}}. The boolean attribute {{%badge%}}PriorExperience{{%/badge%}} is denoted as {{%badge%}}BOOL{{%/badge%}}. Refer to the [Supported Data Types section](#supported-data-types) for all data types and their notations that you can use. #### Important Points to Remember: * The primary keys of the table- the partition key and the sort keys, must be present in the root while constructing an item for adding or updating data in a table. The format shown here is only a representation. The formats for constructing data in each server-side SDK in this JSON format varies. * You can add or update data for your NoSQL table from the Catalyst console in either the standard JSON Format or the Catalyst Custom JSON Format to test. * You can only add or update data in your NoSQL table through the server-specific SDK of {{%link href="/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" %}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/" %}}Python{{%/link%}}, or through API, in the Catalyst Custom JSON format. The SDK help resources contain the formats and examples of constructing data items and inserting them in that programming environment. * If you use the standard JSON format while adding or updating data from the console, the data types associated with the primary key attributes while creating the table or index will be processed automatically. For all other attributes, their data types are recognized automatically by Catalyst based on the values you provide. -------------------------------------------------------------------------------- title: "Add and Manage Data" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. Create, manage, and query data in NoSQL tables with ease, and perform CRUD operations in Java, Node.js, and Python." last_updated: "2026-03-18T07:41:08.538Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/working-with-data/add-manage-data/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Add and Manage Data in a NoSQL Table ### Overview This section covers performing CRUD operations in Catalyst NoSQL, as well as managing data from the Catalyst console. Refer to the {{%link href="/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" %}}Node.js{{%/link%}}, and {{%link href="/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/" %}}Python{{%/link%}} SDK and the {{%link href="/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem" %}}API documentation{{%/link%}} for performing data operations through code or API. Here are a few points to remember when you add or update data in a Catalyst NoSQL table: * The values for the configured partition key of a table must be present in each data item, if it is configured with a simple primary key. In case of a composite primary key, both {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}partition key and sort key{{%/link%}} values must be present in each data item. * The data types configured for the partition key and sort key of a table must match with the data types you provide for the values of those attributes. * You will not be able to change the data types of the partition key and sort key in a table or the attributes associated with them, when you add or update data in the table. * The maximum total size of an item provisioned in Catalyst NoSQL is 400 KB. <br> ### Add Data in a Table To add data in a NoSQL table from the Catalyst console to test: 1. Navigate to the {{%italics%}}Data{{%/italics%}} section of the table from the NoSQL component, then click {{%bold%}}Add Data{{%/bold%}}. <br> 2. This will open a pop-up where you can add data to the table. Catalyst will display a template for the data, which will include the partition key and sort key configured for the table, in both the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Custom and Standard JSON formats{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can only add one item in the table from the console. This is because, the data operations provided in the console are solely for testing purposes.{{%/note%}} <br> You can switch between the standard and Custom JSON view using the toggle button. However, there are certain conditions that data in the standard format must satisfy for you to be able to switch to the Custom format. This is explained below. <br> 3. Add the data for the table in either of the formats, then click {{%bold%}}Create{{%/bold%}}. {{%bold%}}Custom JSON Format:{{%/bold%}} {{%bold%}}Standard JSON Format:{{%/bold%}} <br> #### Conditions when the JSON View Toggle Button is Disabled In certain cases, you will not be able to toggle between the Standard and the Custom JSON format while adding or updating data in the console. These include: 1. When the data type of an attribute is invalid or not {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}supported{{%/link%}} in Catalyst 2. When the value provided for a key in the JSON is invalid 3. When the JSON code added is invalid, or contains syntax or logical errors 4. When the data is valid but includes certain supported data types that cannot be rendered in the Standard JSON view. For example, SS (Set of Strings) or SN (Set of Numbers) cannot be rendered, but the data you provide will be added to the table. After you add the data in a NoSQL table, it will be displayed in the Data section in a tabular manner for easy viewing. {{%note%}}{{%bold%}}Note:{{%/bold%}} Please remember that the table data will not be displayed persistently in the {{%italics%}}Data{{%/italics%}} section. You will be able to view the table data only by querying in this section.{{%/note%}} You can filter columns to be displayed upon querying or right after adding data through the console, using the {{%bold%}}Filter icon{{%/bold%}} in the bottom-right corner. Select the required columns and click {{%bold%}}Apply{{%/bold%}}. This will display the selected columns. <br> #### View Table Data as JSON 1. You can view the table data in the JSON format by clicking the ellipsis icon against the table. <br> 2. Then, click {{%bold%}}View JSON{{%/bold%}} from the options. This displays the table data in Catalyst Custom JSON format. <br> ### Update Data in a Table You can update your NoSQL table data easily from the console to test. All the specifications and constraints described for data addition apply to the data update operation as well. {{%note%}}{{%bold%}}Note:{{%/bold%}} If you update the data in a table from the console, it will essentially overwrite the existing data, as this is for testing purposes. However, if you update data from code through the SDKs, or through the API, the standard update process of a CRUD operation is applied.{{%/note%}} To update the data of a NoSQL table in your project: 1. Click the ellipsis icon against the table, then click {{%bold%}}Edit{{%/bold%}}. <br> 2. Update the data in the Standard or the Custom JSON format, then click {{%bold%}}Update{{%/bold%}}. <br> ### Delete Data in a Table To permanently delete the data you added in a NoSQL table for testing purposes: 1. Click the ellipsis icon against the table, then click {{%bold%}}Delete{{%/bold%}}. 2. Click {{%bold%}}Delete{{%/bold%}} in the confirmation pop-up. --- ## API Reference — NoSQL -------------------------------------------------------------------------------- title: "Insert New Item" description: "This API enables you to insert a new item in a NoSQL table." last_updated: "2026-03-18T07:41:08.551Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/nosql/insert-item/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/nosql/insert-item/" id="InsertNewItem" %}} {{%divtag class="LeftContent"%}} # NoSQL {{%link href="/en/cloud-scale/help/nosql/introduction/"%}}Catalyst NoSQL{{%/link%}} is a fully managed non-relational, NoSQL data storage feature that enables you to store the semi-structured, unstructured, and disparate data of your applications. Catalyst supports document-type data storage in the key-value pair based JSON format. The Catalyst NoSQL APIs enable you to perform CRUD operations on your NoSQL tables. You can insert, update, delete, or fetch items, as well as execute queries on a table or a table's index. # Insert Item ### Description This API enables you to insert a new item in a {{%link href="/en/cloud-scale/help/nosql/introduction/"%}}NoSQL{{%/link%}} table in your project. The table is referred to by its unique ID or name. You can insert an item with or without specifying any conditions by passing the data in the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format"%}}Custom JSON format{{%/link%}}. {{%note%}}{{%bold class="bold-primary"%}}Note:{{%/bold%}} The table must already be created. You can {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}create a NoSQL table{{%/link%}} from the console.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{{project_id}}/nosqltable/{{table_identifier}}/item</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="table_identifier" data="Numerical" %}}The {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}unique ID{{%/link%}} of the table or table name{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.nosql.item.INSERT {{%/scope%}} {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the [Catalyst API Prerequisites section](/en/api/introduction/overview-and-prerequisites/#prerequisites) for details.{{%/note%}} ### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="item" textformat="json" condition="mandatory" maxlength=" " %}} Contains the main data to be inserted in the table. The item must be inserted in the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format"%}}Custom JSON format{{%/link%}}. Specify the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys"%}}partition key{{%/link%}}, if the table was configured with a simple primary key. Specify both the partition key and sort key, if the table was configured with a composite primary key. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="yes" title="condition" textformat="json" condition="optional" maxlength=" " %}} The existing data of the table is retrieved and evaluated against this condition. The items are inserted only if the evaluation is true. If there is no existing data, the conditions are ignored and the items are inserted. There are three ways to initialize a condition: {{% nested_button%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="functions" textformat="json" condition="mandatory (if specifying condition)" maxlength="" %}} The two built-in functions are: {{%badge%}}attribute_exist{{%/badge%}}, which can be used to check for the presence of an attribute, and {{%badge%}}attribute_type{{%/badge%}}, which can be used to check if the given attribute name belongs to the given type.{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="operator, attribute, value" textformat="json" condition="optional" maxlength="" %}} To perform direct comparison operations. Supported operators: {{%badge%}}contains{{%/badge%}}, {{%badge%}}not_contains{{%/badge%}}, {{%badge%}}begins_with{{%/badge%}}, {{%badge%}}ends_with{{%/badge%}}, {{%badge%}}in{{%/badge%}}, {{%badge%}}not_in{{%/badge%}}, {{%badge%}}between{{%/badge%}}, {{%badge%}}not_between{{%/badge%}}, {{%badge%}}equals{{%/badge%}}, {{%badge%}}not_equals{{%/badge%}}, {{%badge%}}greater_than{{%/badge%}}, {{%badge%}}less_than{{%/badge%}}, {{%badge%}}greater_equal{{%/badge%}}, {{%badge%}}less_equal{{%/badge%}}. {{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="group, group operator" textformat="json" condition="optional" maxlength="" %}}To combine two or more conditions. Supported group operators: {{%badge%}}and{{%/badge%}}, {{%badge%}}or{{%/badge%}}. {{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="negate" textformat="json" condition="optional" maxlength="" %}}To negate the result of the conditions. {{% /nested_fields %}} {{%/request_id%}}{{% /nested_fields %}} ### Response Details The response will return the status of the insert operation, as well as the details of the item inserted such as the {{%badge%}}table_name{{%/badge%}}, {{%badge%}}partition_key{{%/badge%}} and {{%badge%}}sort_key{{%/badge%}}, if configured. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/nosqltable/3376000003171728/item \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" \ -H "Content-Type:application/json" \ -d ‘{ "item": { "EmpID": { "N": "10999" }, "FirstName":{ "S": "Paul" }, "LastName":{ "S": "Smith" }, "PriorExperience":{ "BOOL": false }, "Location": { "M": { "Country": { "S": "USA" }, "City": { "S": "New York" } } } } }’ {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "table_name": "employeeDetails", "project_details": { "id": 4000000006007, "project_name": "EmpDatabase", "project_type": "Live" } } } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/nosql/insert-items/"%}}Insert Items- Java SDK{{%/link%}}</br></br> {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/insert-items/"%}}Insert Items- Node.js SDK{{%/link%}}</br></br> {{%link href="/en/sdk/python/v1/cloud-scale/nosql/insert-items/"%}}Insert Items- Python SDK{{%/link%}} {{%/expand%}}</br></br> {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Update Item" description: "This API enables you to update an item in a NoSQL table." last_updated: "2026-03-18T07:41:08.551Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/nosql/update-item/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/nosql/update-item/" id="UpdateItem" %}} {{%divtag class="LeftContent"%}} # Update Item ### Description This API enables you to update an item from the existing data in a {{%link href="/en/cloud-scale/help/nosql/introduction/"%}}NoSQL{{%/link%}} table in your project. The table is referred to by its unique ID or name. You can pass the attributes to be updated with or without specifying any conditions in the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format"%}}Custom JSON format{{%/link%}}. ### Request Details #### Request URL {{%request class="apiblue" req="PUT" %}}<p>{api-domain}/baas/v1/project/{{project_id}}/nosqltable/{{table_identifier}}/item</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="table_identifier" data="Numerical" %}}The {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}unique ID{{%/link%}} of the table or table name{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.nosql.item.UPDATE {{%/scope%}} {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the [Catalyst API Prerequisites section](/en/api/introduction/overview-and-prerequisites/#prerequisites) for details.{{%/note%}} ### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="keys" textformat="json" condition="mandatory" maxlength=" " %}}Denotes the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys"%}}partition key{{%/link%}} and sort key of the table. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="yes" title="update_attributes" textformat="json" condition="mandatory" maxlength=" " %}} Denotes the attribute to be updated along with its value. The update can be of two types: PUT (to add a new attribute within the item) and DELETE (to remove an attribute from the item). The {{%badge%}}attribute_path{{%/badge%}} indicates the path within the item where the actual operation is to be done. The value to be updated can be of two types: {{% nested_button%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="update_value" textformat="json" condition="mandatory" maxlength="" %}}The actual value to be updated.{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="update_function" textformat="json" condition="optional" maxlength="" %}} There are four functions that can be used: <br> {{%badge%}}if_not_exists{{%/badge%}} - Checks the existence of the attribute and declares a value if it is not present. {{%badge%}}append_list{{%/badge%}} - Appends data to a list {{%badge%}}add{{%/badge%}} - Adds a value along with existing value or add an element in a set {{%badge%}}reduction{{%/badge%}} - Sub-traces a value from existing value or remove an element in a set.{{% /nested_fields %}} {{%/request_id%}} {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="yes" title="condition" textformat="json" condition="optional" maxlength=" " %}} The existing data of the table is retrieved and evaluated against this condition. The items are inserted only if the evaluation is true. If there is no existing data, the conditions are ignored and the items are inserted. There are three ways to initialize a condition: {{% nested_button%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="functions" textformat="json" condition="mandatory (if specifying condition)" maxlength="" %}} The two built-in functions are: {{%badge%}}attribute_exist{{%/badge%}}, which can be used to check for the presence of an attribute, and {{%badge%}}attribute_type{{%/badge%}}, which can be used to check if the given attribute name belongs to the given type.{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="operator, attribute, value" textformat="json" condition="optional" maxlength="" %}} To perform direct comparison operations. Supported operators: {{%badge%}}contains{{%/badge%}}, {{%badge%}}not_contains{{%/badge%}}, {{%badge%}}begins_with{{%/badge%}}, {{%badge%}}ends_with{{%/badge%}}, {{%badge%}}in{{%/badge%}}, {{%badge%}}not_in{{%/badge%}}, {{%badge%}}between{{%/badge%}}, {{%badge%}}not_between{{%/badge%}}, {{%badge%}}equals{{%/badge%}}, {{%badge%}}not_equals{{%/badge%}}, {{%badge%}}greater_than{{%/badge%}}, {{%badge%}}less_than{{%/badge%}}, {{%badge%}}greater_equal{{%/badge%}}, {{%badge%}}less_equal{{%/badge%}}. {{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="group, group operator" textformat="json" condition="optional" maxlength="" %}}To combine two or more conditions. Supported group operators: {{%badge%}}and{{%/badge%}}, {{%badge%}}or{{%/badge%}}. {{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="negate" textformat="json" condition="optional" maxlength="" %}}To negate the result of the conditions. {{% /nested_fields %}} {{%/request_id%}}{{% /nested_fields %}} ### Response Details The response will return the status of the insert operation, as well as the details of the item updated such as the {{%badge%}}table_name{{%/badge%}}, {{%badge%}}partition_key{{%/badge%}} and {{%badge%}}sort_key{{%/badge%}}, if configured. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X PUT \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/nosqltable/3376000003171728/item \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" \ -H "Content-Type:application/json" \ -d ‘{ keys:{ partition_key:{ "S":"Country" }, sort_key:{ "N":"EmpID" }, } update_attributes:{ "item": { "EmpID": { "N": "10999" }, "FirstName":{ "S": "Paul" }, "LastName":{ "S": "Smith" }, "PriorExperience":{ "BOOL": false }, "Location": { "M": { "Country": { "S": "USA" }, "City": { "S": "New York" } } } } } }’ {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "table_name": "employeeDetails", "project_details": { "id": 4000000006007, "project_name": "EmpDatabase", "project_type": "Live" } } } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/nosql/update-items/"%}}Update Items- Java SDK{{%/link%}}</br></br> {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/update-items/"%}}Update Items- Node.js SDK{{%/link%}}</br></br> {{%link href="/en/sdk/python/v1/cloud-scale/nosql/update-items/"%}}Update Items- Python SDK{{%/link%}} {{%/expand%}}</br></br> {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Fetch Item" description: "This API enables you to fetch an existing item from a NoSQL table." last_updated: "2026-03-18T07:41:08.552Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/nosql/fetch-item/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/nosql/fetch-item/" id="FetchItem" %}} {{%divtag class="LeftContent"%}} # Fetch Item ### Description This API enables you to fetch an item from a {{%link href="/en/cloud-scale/help/nosql/introduction/"%}}NoSQL{{%/link%}} table in your project. The table is referred to by its unique ID or name. You can specify the attributes of the items to be fetched, and even denote if they need to be fetched from the master or a slave cluster. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{{project_id}}/nosqltable/{{table_identifier}}/item/fetch</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="tableIdentifier" data="Numerical" %}}The {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}unique ID{{%/link%}} of the table or table name{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.nosql.item.READ {{%/scope%}} {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the [Catalyst API Prerequisites section](/en/api/introduction/overview-and-prerequisites/#prerequisites) for details.{{%/note%}} ### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="keys" textformat="json" condition="mandatory" maxlength=" " %}}Denotes the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys"%}}partition key{{%/link%}} and sort key of the table. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="required_attributes" textformat="json" condition="optional" maxlength=" " %}}List of attributes to be returned. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="consistent_read" textformat="json" condition="optional" maxlength=" " %}}Declares if the read has to be done from master or slave. If set to false, it is queried from the slave. Accepted values: {{%badge%}}true{{%/badge%}}, {{%badge%}}false{{%/badge%}}. {{% /nested_fields %}} ### Response Details The response will return the status of the fetch operation, as well as the items that are fetched. Either all the attributes or specified attributes of the items will be fetched. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X GET \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/nosqltable/3376000003171728/item/fetch \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" \ -H "Content-Type:application/json" \ -d ‘{ keys:{ partition_key:{ "S":"Country" }, sort_key:{ "N":"EmpID" }, } required_attributes: { "EmpID", "FirstName", "LastName", "PriorExperience" }, consistent_read: "true" }’ {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { fetched_attributes:{ "item": { "EmpID": { "N": "10999" }, "FirstName":{ "S": "Paul" }, "LastName":{ "S": "Smith" }, "PriorExperience":{ "BOOL": false } } } } } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/nosql/fetch-items/"%}}Fetch Items- Java SDK{{%/link%}}</br></br> {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/fetch-items/"%}}Fetch Items- Node.js SDK{{%/link%}}</br></br> {{%link href="/en/sdk/python/v1/cloud-scale/nosql/fetch-items/"%}}Fetch Items- Python SDK{{%/link%}} {{%/expand%}}</br></br> {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Delete Item" description: "This API enables you to delete an item from a NoSQL table." last_updated: "2026-03-18T07:41:08.552Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/nosql/delete-item/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/nosql/delete-item/" id="DeleteItem" %}} {{%divtag class="LeftContent"%}} # Delete Item ### Description This API enables you to insert a new item in a {{%link href="/en/cloud-scale/help/nosql/introduction/"%}}NoSQL{{%/link%}} table in your project. The table is referred to by its unique ID or name. You can insert an item with or without specifying any conditions by passing the data in the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format"%}}Custom JSON format{{%/link%}}. {{%note%}}{{%bold class="bold-primary"%}}Note:{{%/bold%}} The table must already be created. You can {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}create a NoSQL table{{%/link%}} from the console.{{%/note%}} ### Request Details #### Request URL {{%request class="apired" req="DELETE" %}}<p>{api-domain}/baas/v1/project/{{project_id}}/nosqltable/{{table_identifier}}/item</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="table_identifier" data="Numerical" %}}The {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}unique ID{{%/link%}} of the table or table name{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.nosql.item.INSERT {{%/scope%}} {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the [Catalyst API Prerequisites section](/en/api/introduction/overview-and-prerequisites/#prerequisites) for details.{{%/note%}} ### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="item" textformat="json" condition="mandatory" maxlength=" " %}} Contains the main data to be inserted in the table. The item must be inserted in the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format"%}}Custom JSON format{{%/link%}}. Specify the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys"%}}partition key{{%/link%}}, if the table was configured with a simple primary key. Specify both the partition key and sort key, if the table was configured with a composite primary key. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="yes" title="condition" textformat="json" condition="optional" maxlength=" " %}} The existing data of the table is retrieved and evaluated against this condition. The items are inserted only if the evaluation is true. If there is no existing data, the conditions are ignored and the items are inserted. There are three ways to initialize a condition: {{% nested_button%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="functions" textformat="json" condition="mandatory (if specifying condition)" maxlength="" %}} The two built-in functions are: {{%badge%}}attribute_exist{{%/badge%}}, which can be used to check for the presence of an attribute, and {{%badge%}}attribute_type{{%/badge%}}, which can be used to check if the given attribute name belongs to the given type.{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="operator, attribute, value" textformat="json" condition="optional" maxlength="" %}} To perform direct comparison operations. Supported operators: {{%badge%}}contains{{%/badge%}}, {{%badge%}}not_contains{{%/badge%}}, {{%badge%}}begins_with{{%/badge%}}, {{%badge%}}ends_with{{%/badge%}}, {{%badge%}}in{{%/badge%}}, {{%badge%}}not_in{{%/badge%}}, {{%badge%}}between{{%/badge%}}, {{%badge%}}not_between{{%/badge%}}, {{%badge%}}equals{{%/badge%}}, {{%badge%}}not_equals{{%/badge%}}, {{%badge%}}greater_than{{%/badge%}}, {{%badge%}}less_than{{%/badge%}}, {{%badge%}}greater_equal{{%/badge%}}, {{%badge%}}less_equal{{%/badge%}}. {{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="group, group operator" textformat="json" condition="optional" maxlength="" %}}To combine two or more conditions. Supported group operators: {{%badge%}}and{{%/badge%}}, {{%badge%}}or{{%/badge%}}. {{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="negate" textformat="json" condition="optional" maxlength="" %}}To negate the result of the conditions. {{% /nested_fields %}} {{%/request_id%}}{{% /nested_fields %}} ### Response Details The response will return the status of the insert operation, as well as the details of the item inserted such as the {{%badge%}}table_name{{%/badge%}}, {{%badge%}}partition_key{{%/badge%}} and {{%badge%}}sort_key{{%/badge%}}, if configured. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X DELETE \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/nosqltable/3376000003171728/item \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" \ -H "Content-Type:application/json" \ -d ‘{ "item": { "EmpID": { "N": "10999" }, "FirstName":{ "S": "Paul" }, "LastName":{ "S": "Smith" }, "PriorExperience":{ "BOOL": false }, "Location": { "M": { "Country": { "S": "USA" }, "City": { "S": "New York" } } } } }’ {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "table_name": "employeeDetails", "project_details": { "id": 4000000006007, "project_name": "EmpDatabase", "project_type": "Live" } } } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/nosql/insert-items/"%}}Insert Items- Java SDK{{%/link%}}</br></br> {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/insert-items/"%}}Insert Items- Node.js SDK{{%/link%}}</br></br> {{%link href="/en/sdk/python/v1/cloud-scale/nosql/insert-items/"%}}Insert Items- Python SDK{{%/link%}} {{%/expand%}}</br></br> {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Query Table" description: "This API enables you to query a NoSQL table and fetch data." last_updated: "2026-03-18T07:41:08.552Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/nosql/query-table/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/nosql/query-table/" id="QueryTable" %}} {{%divtag class="LeftContent"%}} # Query Table ### Description This API enables you to query a {{%link href="/en/cloud-scale/help/nosql/introduction/"%}}NoSQL{{%/link%}} table in your project and fetch data. The table is referred to by its unique ID. ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{{project_id}}/nosqltable/{{table_identifier}}/item/query</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="table_identifier" data="Numerical" %}}The {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}unique ID{{%/link%}} of the table or table name{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.nosql.POST {{%/scope%}} {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the [Catalyst API Prerequisites section](/en/api/introduction/overview-and-prerequisites/#prerequisites) for details.{{%/note%}} ### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="key_condition" textformat="json" condition="mandatory" maxlength=" " %}}Contains the condition in the format similar to the CRUD operations of items. Only the partition key and sort key conditions can be given. Partition key can only have the "equals" operator. The condition can be partition key = value, or a group with partition key equals condition and the sort key condition. Refer to the {{%link href="/en/cloud-scale/help/nosql/query-search/#supported-operators"%}}full list of supported operators{{%/link%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="required_attributes" textformat="json" condition="optional" maxlength=" " %}}List of attributes to be returned. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="consistent_read" textformat="json" condition="optional" maxlength=" " %}}Declares if the read has to be done from master or slave. If set to false, it is queried from the slave. Accepted values: {{%badge%}}true{{%/badge%}}, {{%badge%}}false{{%/badge%}}. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="other_condition" textformat="json" condition="optional" maxlength=" " %}}These are conditions that are applied over the retrieved data. The response is sent after these conditions are applied. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="forwardScan" textformat="json" condition="optional" maxlength=" " %}}This is used to indicate if the query has to be done in ascending or descending order.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="startKey" textformat="json" condition="optional" maxlength=" " %}}This is used for pagination purposes to fetch the next set of data items. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="additional_sort_key" textformat="json" condition="optional" maxlength=" " %}}This is used to indicate if the query is made against the table with additional sort keya. This contains the additional sort key attribute names. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="limit" textformat="json" condition="optional" maxlength=" " %}}This indicates the maximum count of items that should be returned. {{% /nested_fields %}} ### Response Details The response will return the status of the query operation, as well as the items that are fetched according to the conditions set in the query. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/nosqltable/3376000003171728/item/query \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" \ -H "Content-Type:application/json" \ -d -d ‘{ key_condition:{ partition_key:{ "S":"Country" }, sort_key:{ "N":"EmpID" }, } required_attributes: { "EmpID", "FirstName", "LastName", "PriorExperience" }, consistent_read: "true" }’ {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { fetched_data:{ "item": { "EmpID": { "N": "10999" }, "FirstName":{ "S": "Paul" }, "LastName":{ "S": "Smith" }, "PriorExperience":{ "BOOL": false } } } } } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/nosql/query-table/"%}}Query Table- Java SDK{{%/link%}}</br></br> {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/query-table/"%}}Query Table- Node.js SDK{{%/link%}}</br></br> {{%link href="/en/sdk/python/v1/cloud-scale/nosql/query-table/"%}}Query Table- Python SDK{{%/link%}} {{%/expand%}}</br></br> {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Query Index" description: "This API enables you to query a NoSQL index and fetch data." last_updated: "2026-03-18T07:41:08.552Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/nosql/query-index/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/nosql/query-index/" id="QueryIndex" %}} {{%divtag class="LeftContent"%}} # Query Index ### Description This API enables you to query a {{%link href="/en/cloud-scale/help/nosql/introduction/"%}}NoSQL{{%/link%}} index in your project and fetch data. The index is referred to by its unique ID. ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{{project_id}}/nosqltable/{{table_identifier}}//index/{{index_identifier/}}/item/query</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="tableIdentifier" data="Numerical" %}}The {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}unique ID{{%/link%}} of the table or table name{{%/request_id%}} {{%request_id id="index_identifier" data="Numerical" %}}The {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/"%}}unique ID{{%/link%}} of the index{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.nosql.POST {{%/scope%}} {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the [Catalyst API Prerequisites section](/en/api/introduction/overview-and-prerequisites/#prerequisites) for details.{{%/note%}} ### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="key_condition" textformat="json" condition="mandatory" maxlength=" " %}}Contains the condition in the format similar to the CRUD operations of items. Only the partition key and sort key conditions can be given. Partition key can only have the "equals" operator. The condition can be partition key = value, or a group with partition key equals condition and the sort key condition. Refer to the {{%link href="/en/cloud-scale/help/nosql/query-search/#supported-operators"%}}full list of supported operators{{%/link%}}.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="required_attributes" textformat="json" condition="optional" maxlength=" " %}}List of attributes to be returned. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="consistent_read" textformat="json" condition="optional" maxlength=" " %}}Declares if the read has to be done from master or slave. If set to false, it is queried from the slave. Accepted values: {{%badge%}}true{{%/badge%}}, {{%badge%}}false{{%/badge%}}. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="other_condition" textformat="json" condition="optional" maxlength=" " %}}These are conditions that are applied over the retrieved data. The response is sent after these conditions are applied. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="forwardScan" textformat="json" condition="optional" maxlength=" " %}}This is used to indicate if the query has to be done in ascending or descending order.{{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="startKey" textformat="json" condition="optional" maxlength=" " %}}This is used for pagination purposes to fetch the next set of data items. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="additional_sort_key" textformat="json" condition="optional" maxlength=" " %}}This is used to indicate if the query is made against the table with additional sort keya. This contains the additional sort key attribute names. {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="limit" textformat="json" condition="optional" maxlength=" " %}}This indicates the maximum count of items that should be returned. {{% /nested_fields %}} ### Response Details The response will return the status of the query operation, as well as the items that are fetched according to the conditions set in the query. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/nosqltable/3376000003171728/index/786387162881/item/query \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" \ -H "Content-Type:application/json" \ -d -d ‘{ key_condition:{ partition_key:{ "S":"Country" }, sort_key:{ "N":"EmpID" }, } required_attributes: { "EmpID", "FirstName", "LastName", "PriorExperience" }, consistent_read: "true" }’ {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { fetched_data:{ "item": { "EmpID": { "N": "10999" }, "FirstName":{ "S": "Paul" }, "LastName":{ "S": "Smith" }, "PriorExperience":{ "BOOL": false } } } } } {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/nosql/query-index/"%}}Query Index- Java SDK{{%/link%}}</br></br> {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/query-index/"%}}Query Index- Node.js SDK{{%/link%}}</br></br> {{%link href="/en/sdk/python/v1/cloud-scale/nosql/query-index//"%}}Query Index- Python SDK{{%/link%}} {{%/expand%}}</br></br> {{%/expand-container%}} {{%/divtag%}} {{%/section%}} --- ## SDK — Java — NoSQL -------------------------------------------------------------------------------- title: "Get Table Metadata" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch the metadata of a NoSQL table." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) - NoSQL Node.js SDK (/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/) - NoSQL Python SDK (/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/) -------------------------------------------------------------------------------- # NoSQL {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} is a fully managed non-relational, NoSQL data storage feature that enables you to store the semi-structured, unstructured, and disparate data of your applications. Catalyst supports document-type data storage in the key-value pair based {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}JSON format{{%/link%}}. The Catalyst NoSQL Java SDK package enables you to perform CRUD data operations on your NoSQL tables in your project. You can fetch the metadata of your NoSQL tables, create NoSQL {{%link href="/en/cloud-scale/help/nosql/components/" %}}items{{%/link%}} of various {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}supported data types{{%/link%}}, and insert, update, fetch, or delete items in a specific table. You can also query tables or {{%link href="/en/cloud-scale/help/nosql/indexing/introduction/" %}}indexes{{%/link%}} of tables by specifying query conditions. ## Get Table Metadata Catalyst enables you to fetch the metadata of a NoSQL table by obtaining an instance of the Java SDK using the {{%badge%}}getInstance(){{%/badge%}} method. You can get the metadata of a single table or of all tables in your project. ### Get Metadata of Single Table The metadata of a single table in Catalyst NoSQL can be obtained in two ways as mentioned in this page. The response will contain details of the table configuration, such as the partition key and sort key, TTL attribute, and more. #### Get Table Metadata with Table ID You can fetch the metadata of a NoSQL table in your project by referring to its unique {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/" %}}Table ID{{%/link%}} using the method {{%badge%}}getTable(){{%/badge%}} as given below. {{%code class="language-java"%}}//public ZCNoSQLTable getTable(String tableName) throws Exception; //public ZCNoSQLTable getTable(Long tableId) throws Exception; // Get table metadata using the Table ID ZCNoSQL.getInstance().getTable(2144568989001);{{%/code%}} <br> #### Get Table Metadata with Table Name You can fetch the metadata of a NoSQL table in your project by referring the table name using the method {{%badge%}}getTable(){{%/badge%}} as given below. {{%code class="language-java"%}}//public ZCNoSQLTable getTable(String tableName) throws Exception; //public ZCNoSQLTable getTable(Long tableId) throws Exception; // Get table metadata using the Table name ZCNoSQL.getInstance().getTable('Employees');{{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} If you rename the table, you will need to update the changes in your code.{{%/note%}} <br> ### Get Metadata of All Tables Catalyst enables you to fetch the metadata of all the tables in your project using the {{%badge%}}getAllTables() method{{%/badge%}} as shown below. {{%code class="language-java"%}}//public List&lt;ZCNoSQLTable&gt; getAllTables() throws Exception; ZCNoSQL.getInstance().getAllTables();{{%/code%}} -------------------------------------------------------------------------------- title: "Create Table Instance" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to create an instance for a NoSQL table." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/create-table-instance/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/en/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Create Table Instance {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} enables you to fetch an empty table instance of a NoSQL table. You can then use this instance to refer to that table and perform all supported table operations. This process will not fire a server-side call. You can get an instance of your NoSQL table in two ways as described in this section. ### Get Instance with Table ID Get a table instance by passing the {{%link href="/en/cloud-scale/help/nosql/create-manage-tables/" %}}unique ID{{%/link%}} of the table to {{%badge%}}getTableInstance(){{%/badge%}} as shown below. {{%code class="language-java"%}}//public ZCNoSQLTable getTableInstance(Long tableId); //public ZCNoSQLTable getTableInstance(String tableName); // Create a table instance with Table ID ZCNoSQL.getInstance().getTableInstance(37898901211);{{%/code%}} <br> ### Get Instance with Table Name Get a table instance by passing the table name to {{%badge%}}getTableInstance(){{%/badge%}} as shown below. {{%code class="language-java"%}}//public ZCNoSQLTable getTableInstance(Long tableId); //public ZCNoSQLTable getTableInstance(String tableName); // Create a table instance with Table ID ZCNoSQL.getInstance().getTableInstance('Employees');{{%/code%}} -------------------------------------------------------------------------------- title: "Construct NoSQL Item" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to construct a NoSQL item." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/construct-item/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Construct NoSQL Item {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} items represent a collection of attributes that hold the data of a single data point, like records. You can insert or update {{%link href="/en/cloud-scale/help/nosql/components/#basic-components" %}}items{{%/link%}} into an existing NoSQL table in your project in a {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Custom JSON format{{%/link%}}. However, before you insert or update an item in Catalyst, you will need to construct the item. You can construct a NoSQL item of attributes containing different data types supported by Catalyst as described in the section below. Catalyst supports several data types such as String, Number, Set of Strings, Set of Numbers, List, and Map. Refer to the full list of {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}supported data types{{%/link%}} in the shared resource to learn more. You must mandatorily provide the values for the partition key attribute that you configured for a table in every data item. Refer to {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}Table Keys help section{{%/link%}} to learn about the table keys, TTL attribute, and other details. <br> ### Create a New NoSQL Item You can create a new NoSQL item using the {{%badge%}}ZCNoSQLItem(){{%/badge%}} method, as shown below. {{%code class="language-java"%}}ZCNoSQLItem item = new ZCNoSQLItem();{{%/code%}} #### Create a New NoSQL Item with JSON / Map You can create a new NoSQL item from a plain JSON data or from a Map after you define them as shown below. {{%code class="language-java"%}}//public static ZCNoSQLItem fromJSON(String json) throws Exception; ZCNoSQLItem.fromJSON(&lt;json string&gt;);{{%/code%}} <br> ### Construct NoSQL Items of Different Data Types The code snippet below shows the formats for constructing an item with attributes of different data types: {{%code class="language-java"%}}//public ZCNoSQLItem withString(String attrName, String val) throws Exception; item.withString("attribute name", "&lt;string value&gt;"); //public ZCNoSQLItem withNumber(String attrName, BigDecimal val) throws Exception; //public ZCNoSQLItem withNumber(String attrName, Number val) throws Exception; item.withNumber("attribute name", "&lt;numeric value&gt;"); //public ZCNoSQLItem withInt(String attrName, int val) throws Exception; item.withInt("attribute name", "&lt;integer value&gt;"); //public ZCNoSQLItem withBigInteger(String attrName, BigInteger val) throws Exception; item.withBigInteger("attribute name", "&lt;BigInt value&gt;"); //public ZCNoSQLItem withShort(String attrName, short val) throws Exception; item.withShort("attribute name", "&lt;Short value&gt;"); //public ZCNoSQLItem withFloat(String attrName, float val) throws Exception; item.withFloat("attribute name", "&lt;Float value&gt;"); //public ZCNoSQLItem withDouble(String attrName, double val) throws Exception; item.withDouble("attribute name", "&lt;Double value&gt;"); //public ZCNoSQLItem withLong(String attrName, long val) throws Exception; item.withLong("attribute name", "&lt;Long value&gt;"); //public ZCNoSQLItem withBinary(String attrName, byte[] val) throws Exception; //public ZCNoSQLItem withBinary(String attrName, ByteBuffer val) throws Exception; item.withBinary("attribute name", "&lt;Byte value&gt;"); //public ZCNoSQLItem withStringSet(String attrName, Set&lt;String&gt; val) throws Exception; //public ZCNoSQLItem withStringSet(String attrName, String... val) throws Exception; item.withStringSet("attribute name", "&lt;StringSet/String variadic param value&gt;"); //public ZCNoSQLItem withBigDecimalSet(String attrName, Set&lt;BigDecimal&gt; val) throws Exception; //public ZCNoSQLItem withBigDecimalSet(String attrName, BigDecimal... vals) throws Exception; item.withBigDecimalSet("attribute name", "&lt;DecimalSet/Decimal Variadic param value&gt;"); //public &lt;T extends Number&gt; ZCNoSQLItem withNumberSet(String attrName, T... vals) throws Exception; //public &lt;T extends Number&gt; ZCNoSQLItem withNumberSet(String attrName, Set&lt;T&gt; vals) throws Exception; item.withNumberSet("attribute name", "&lt;Numeric/Numeric Variadic param value&gt;"); //public ZCNoSQLItem withBinarySet(String attrName, Set&lt;byte[]&gt; val) throws Exception; //public ZCNoSQLItem withBinarySet(String attrName, byte[]... vals) throws Exception; //public ZCNoSQLItem withBinarySet(String attrName, ByteBuffer... vals) throws Exception; item.withBinarySet("attribute name", "&lt;Byte Set value&gt;"); //public ZCNoSQLItem withByteBufferSet(String attrName, Set&lt;ByteBuffer&gt; val) throws Exception; item.withByteBufferSet("attribute name", "&lt;Byte Set value&gt;"); //public ZCNoSQLItem withList(String attrName, List&lt;?&gt; val) throws Exception; //public ZCNoSQLItem withList(String attrName, Object... vals) throws Exception; item.withList("attribute name", "&lt;List/Variadic Param value&gt;"); //public ZCNoSQLItem withMap(String attrName, Map&lt;String, ?&gt; val) throws Exception; item.withMap("attribute name", "&lt;Map value&gt;"); //public ZCNoSQLItem withJSON(String attrName, String json) throws Exception; item.withJSON("attribute name", "&lt;JSON String value&gt;"); //public ZCNoSQLItem withBoolean(String attrName, boolean val) throws Exception; item.withBoolean("attribute name", "&lt;Boolean value&gt;"); //public ZCNoSQLItem withNull(String attrName) throws Exception; item.withNull("attribute name"); //public ZCNoSQLItem with(String attrName, Object val) throws Exception; item.with("attribute name", "&lt;Value&gt;");{{%/code%}} -------------------------------------------------------------------------------- title: "NoSQL Item Operations" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK methods to perform various NoSQL item operations." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/item-operations/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # NoSQL Item Operations {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} items represent a collection of attributes that hold the data of a single data point, like records. Given below are the methods that you can use with an {{%link href="/en/cloud-scale/help/nosql/components/#basic-components" %}}item{{%/link%}} and perform various operations on it. #### Remove attributes from a constructed item {{%code class="language-java"%}}//public ZCNoSQLItem removeAttribute(String attrName) throws Exception; item.removeAttribute("attribute name");{{%/code%}} #### Get all the keys from the item being constructed {{%code class="language-java"%}}//public Iterable&lt;Map.Entry&gt;String, Object&gt;&gt; attributes(); item.attributes();{{%/code%}} #### Check if the constructed item contains a specific attribute {{%code class="language-java"%}}//public boolean hasAttribute(String attrName); item.hasAttribute("attribute name");{{%/code%}} #### Getting the item as a map {{%code class="language-java"%}}//public Map<String, Object> asMap(); item.asMap(); //public Map&lt;String, Object&gt; getAllAttributesAsMap(); item.getAllAttributesAsMap();{{%/code%}} #### Get the item as a JSON {{%code class="language-java"%}}//public String toJSON() throws Exception; item.toJSON();{{%/code%}} #### Get the count of the attributes in the constructed item {{%code class="language-java"%}}//public int numberOfAttributes(); item.numberOfAttributes();{{%/code%}} <br> ### ZCNoSQLAttribute You can use the {{%badge%}}ZCNoSQLAttribute{{%/badge%}} class to indicate the attributes upon which you perform the operations. To access the nested elements of a Map, you can separate the attributes using ',' while using {{%badge%}}ZCNoSQLAttribute{{%/badge%}}. To access a specific index of a list, you can denote it as "[&lt;index&gt;]". This is demonstrated in the example below. {{%code class="language-java"%}}//public static ZCNoSQLAttribute getInstance(String ...pathElements) throws Exception; //public ZCNoSQLAttribute(List&lt;String&gt; pathElements) throws Exception; ZCNoSQLAttribute.getInstance("", ...); new ZCNoSQLAttribute("", ...){{%/code%}} The datatypes supported by NoSQL can be denoted with the {{%badge%}}ZCNoSQLAttribute{{%/badge%}} as follows: <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Supported Data Type</th> <th class="w10p">Notation with ZCNoSQLAttribute</th> </tr> </thead> <tbody> <tr> <td>String</td> <td>{{%badge%}}ZCNoSQLValue.DataType.S{{%/badge%}} </td> </tr> <tr> <td>Numeric</td> <td>{{%badge%}}ZCNoSQLValue.DataType.N{{%/badge%}}</td> </tr> <tr> <td>Binary</td> <td>{{%badge%}}ZCNoSQLValue.DataType.B{{%/badge%}} </td> </tr> <tr> <td>Boolean</td> <td>{{%badge%}}ZCNoSQLValue.DataType.BOOL{{%/badge%}}</td> </tr> <tr> <td>Set of String</td> <td>{{%badge%}}ZCNoSQLValue.DataType.SS{{%/badge%}}</td> </tr> <tr> <td>Set of Numbers</td> <td>{{%badge%}}ZCNoSQLValue.DataType.SN{{%/badge%}}</td> </tr> <tr> <td>Set of Binary</td> <td>{{%badge%}}ZCNoSQLValue.DataType.SB{{%/badge%}}</td> </tr> <tr> <td>List</td> <td>{{%badge%}}ZCNoSQLValue.DataType.L{{%/badge%}}</td> </tr> <tr> <td>Map</td> <td>{{%badge%}}ZCNoSQLValue.DataType.M{{%/badge%}}</td> </tr> <tr> <td>Null</td> <td>{{%badge%}}ZCNoSQLValue.DataType.NuLL{{%/badge%}}</td> </tr> </tbody> </table> <br> ### ZCNoSQLValue Objects of this class are used to indicate the value of attributes along with their data type, as shown below. {{%code class="language-java"%}}// public ZCNoSQLValue(DataType dataType, Object value) throws Exception; //public static ZCNoSQLValue getInstance(DataType dataType, Object value) throws Exception; new ZCNoSQLValue(&lt;ZCNoSQLValue.DataType&gt;, &lt;Value&gt;) ZCNoSQLValue.getInstance(&lt;ZCNoSQLValue.DataType&gt;, &lt;Value&gt;){{%/code%}} <br> ### ZCNoSQLResponseBean This class contains the response of the SDK calls made to the server. This includes the following methods. * {{%badge%}}getSize{{%/badge%}} - Used to return the size of data read/write from or to the server. {{%code class="language-java"%}}//public int getSize(); responseBean.getSize();{{%/code%}} * {{%badge%}}getStartKey{{%/badge%}} - Used to return the start key for next set of data for pagination, if more data exists. {{%code class="language-java"%}}//public ZCNoSQLItem getStartKey(); responseBean.getStartKey();{{%/code%}} * {{%badge%}}getResponseDataList{{%/badge%}} - Returns the actual data. Based on the {{%badge%}}NOSQL_RETURN_VALUE{{%/badge%}}, either the old or new data is returned in {{%badge%}}getNew_item(){{%/badge%}} or {{%badge%}}getOld_Item(){{%/badge%}} method. {{%code class="language-java"%}}//public List&lt;Data&gt; getResponseDataList(); responseBean.getResponseDataList().get(&lt;index&gt;).getNew_item(); responseBean.getResponseDataList().get(&lt;index&gt;).getOld_item(); responseBean.getResponseDataList().get(&lt;index&gt;).setStatus();{{%/code%}} -------------------------------------------------------------------------------- title: "Insert Items in Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to insert items in a NoSQL table." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/insert-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Insert NoSQL Items in Table Catalyst enables you to insert items in a specific {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table after you construct them. The items can be inserted in different ways as described in this section. You can refer to the help sections on adding and working with data, the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Catalyst custom JSON format{{%/link%}}, and the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}supported data types{{%/link%}} to learn these topics in detail. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to insert a maximum of 25 items in bulk in a NoSQL table with a single SDK operation.{{%/note%}} ### Insert Items without Conditions You can insert new items into a NoSQL table without any conditions either by using the {{%badge%}}ZCNoSQLTable{{%/badge%}} instance, or the {{%badge%}}ZCNoSQLInsertHelper{{%/badge%}} instance which can be used to construct the various parts of the request. You can insert data with the {{%badge%}}ZCNoSQLTable{{%/badge%}} instance as shown below. {{%code class="language-java"%}}//public ZCNoSQLResponseBean insert(ZCNoSQLItem item) throws Exception; table.insert(&lt;ZCNoSQLItem&gt;);{{%/code%}} You can insert data with the {{%badge%}}ZCNoSQLInsertHelper{{%/badge%}} instance as shown below. {{%code class="language-java"%}}//public ZCNoSQLInsertHelper getInsertHelper(ZCNoSQLItem item) throws Exception; //public ZCNoSQLResponseBean insert() throws Exception; table.getInsertHelper(&lt;ZCNoSQLItem&gt;).insert();{{%/code%}} This class can be used to insert data into a table with conditions. This can be obtained from {{%badge%}}ZCNoSQLTable{{%/badge%}} instance. <br> ### Insert Items with Conditions You can insert attributes in existing items in a NoSQL table using specific conditions that you define. In this type, the existing data of the table is retrieved and evaluated against the specified condition. The items are inserted only if the evaluation is true. If there is no existing data, the conditions are ignored and the items are inserted. The snippet below shows inserting items with conditions using {{%badge%}}ZCNoSQLCondition{{%/badge%}}. {{%code class="language-java"%}}//public ZCNoSQLInsertHelper withCondition(ZCNoSQLCondition condition) throws Exception; table.getInsertHelper(&lt;ZCNoSQLItem&gt;).withCondition(&lt;ZCNoSQLCondition&gt;).insert();{{%/code%}} Condition can be passed with the help of {{%badge%}}ZCNoSQLCondition{{%/badge%}} instance which can be obtained by using a constructor or calling the {{%badge%}}getInstance(){{%/badge%}} method. Conditions can be initialized in 3 methods #### 1. Using functions {{%code class="language-java"%}}//public static ZCNoSQLCondition getInstance(NoSQLConditionFunction function) throws Exception; //public ZCNoSQLCondition(NoSQLConditionFunction function) throws Exception; ZCNoSQLCondition.getInstance(&lt;NoSQLCondtitionFunction&gt;); new ZCNoSQLCondition(&lt;NoSQLCondtitionFunction&gt;){{%/code%}} There are two built in-functions available. {{%bold%}}i. ZCNoSQLAttributeTypeFunction{{%/bold%}} Check if the data type of the given attribute matched the given datatype. {{%code class="language-java"%}}//public ZCNoSQLAttributeTypeFunction(ZCNoSQLAttribute attribute, ZCNoSQLValue.DataType dataType) throws Exception; //public static ZCNoSQLAttributeTypeFunction getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue.DataType dataType) throws Exception; ZCNoSQLAttributeTypeFunction.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue.DataType&gt;); new ZCNoSQLAttributeTypeFunction(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue.DataType&gt;);{{%/code%}} {{%bold%}}ii. ZCNoSQLAttributeExistFunction {{%/bold%}} This is used to evaluate if an attribute already exists in the retrieved item. {{%code class="language-java"%}}//public ZCNoSQLAttributeExistFunction(ZCNoSQLAttribute attribute); //public static ZCNoSQLAttributeExistFunction getInstance(ZCNoSQLAttribute attribute); ZCNoSQLAttributeExistFunction.getInstance(&lt;ZCNoSQLAttribute&gt;); new ZCNoSQLAttributeExistFunction(&lt;ZCNoSQLAttribute&gt;){{%/code%}} <br> #### 2. Using operator, operand and value {{%code class="language-java"%}}//public static ZCNoSQLCondition getInstance(ZCNoSQLAttribute attribute, NOSQL_OPERATOR operator, ZCNoSQLValue value) throws Exception; //public ZCNoSQLCondition(ZCNoSQLAttribute attribute, NOSQL_OPERATOR operator, ZCNoSQLValue value) throws Exception; ZCNoSQLCondition.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;NOSQL_OPERATOR&gt;, &lt;ZCNoSQLValue&gt;); new ZCNoSQLCondition(&lt;ZCNoSQLAttribute&gt;, &lt;NOSQL_OPERATOR&gt;, &lt;ZCNoSQLValue&gt;);{{%/code%}} #### NOSQL_OPERATOR The allowed {{%badge%}}NOSQL_OPERATOR{{%/badge%}} values are contains, {{%badge%}}not_contains{{%/badge%}}, {{%badge%}}begins_with{{%/badge%}}, {{%badge%}}ends_with{{%/badge%}}, {{%badge%}}in{{%/badge%}}, {{%badge%}}not_in{{%/badge%}}, {{%badge%}}between{{%/badge%}}, {{%badge%}}not_between{{%/badge%}}, {{%badge%}}equals{{%/badge%}}, {{%badge%}}not_equals{{%/badge%}}, {{%badge%}}greater_than{{%/badge%}}, {{%badge%}}less_than{{%/badge%}}, {{%badge%}}greater_equal{{%/badge%}}, {{%badge%}}less_equal{{%/badge%}} #### Using group of conditions {{%code class="language-java"%}}//public static ZCNoSQLCondition getInstance(List&lt;ZCNoSQLCondition&gt; groups, NOSQL_CONDITION_GROUP_OPERATOR groupOperator) throws Exception; //public ZCNoSQLCondition(List&lt;ZCNoSQLCondition&gt; groups, NOSQL_CONDITION_GROUP_OPERATOR groupOperator) throws Exception; ZCNoSQLCondition.getInstance(List&lt;ZCNoSQLCondition&gt;,&lt;NOSQL_CONDITION_GROUP_OPERATOR&gt;) new ZCNoSQLCondition(List&lt;ZCNoSQLCondition&gt;,&lt;NOSQL_CONDITION_GROUP_OPERATOR&gt;){{%/code%}} #### NOSQL_CONDITION_GROUP_OPERATOR The allowed {{%badge%}}NOSQL_CONDITION_GROUP_OPERATOR{{%/badge%}} values are {{%badge%}}AND{{%/badge%}}, {{%badge%}}OR{{%/badge%}} #### NOSQL_RETURN_VALUE Indicates the return value after evaluating condition. {{%code class="language-java"%}}//public ZCNoSQLInsertHelper withReturnValue(NOSQL_RETURN_VALUE returnValue) throws Exception table.getInsertHelper(&lt;ZCNoSQLItem&gt;).withReturnValue(&lt;NOSQL_RETURN_VALUE&gt;).insert();{{%/code%}} The allowed {{%badge%}}NOSQL_RETURN_VALUE{{%/badge%}} values are {{%badge%}}NEW{{%/badge%}}, {{%badge%}}OLD{{%/badge%}}, {{%badge%}}NULL{{%/badge%}} #### Insert with Condition and Return Value {{%code class="language-java"%}}table.getInsertHelper(&lt;ZCNoSQLItem&gt;).withCondition(&lt;ZCNoSQLCondition&gt;).withReturnValue(&lt;NOSQL_RETURN_VALUE&gt;).insert();{{%/code%}} -------------------------------------------------------------------------------- title: "Update Items" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to update items in a NoSQL table." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/update-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Update Items in a NoSQL Table Catalyst enables you to update items in a specific {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table after you construct them. An item can be updated by identifying it using its {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}}. For instance, you can use just the partition key or a combination of the partition key and sort key to identify the item. You can then define the update operation type with the appropriate HTTP request method and provide the attributes and values to be updated in the item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to update a maximum of 25 items in bulk in a NoSQL table with a single SDK operation.{{%/note%}} There are two ways to update the data. Data can be updated without any conditions by using the {{%badge%}}ZCNoSQLTable{{%/badge%}} instance or it can be updated with the help of {{%badge%}}ZCNoSQLUpdateHelper{{%/badge%}} instance which can be used to construct the various parts of the request. You can update the data with the {{%badge%}}ZCNoSQLTable{{%/badge%}} instance as shown below. {{%code class="language-java"%}}//public ZCNoSQLResponseBean update(ZCNoSQLItem item, ZCNoSQLUpdateAttributeOperation updateAttributeOperation) throws Exception; table.update(&lt;ZCNoSQLItem&gt;, &lt;ZCNoSQLUpdateAttributeOperation&gt;); {{%/code%}} To update with ZCNoSQLUpdateHelper #### ZCNoSQLUpdateHelper {{%code class="language-java"%}}//public ZCNoSQLInsertHelper getInsertHelper(ZCNoSQLItem item) throws Exception; //public ZCNoSQLResponseBean insert() throws Exception; table.getUpdateHelper(&lt;ZCNoSQLItem&gt;, &lt;ZCNoSQLUpdateAttributeOperation&gt;).update(); {{%/code%}} #### ZCNoSQLUpdateAttributeOperation This class is used update the item by either adding/updating existing attribute or deleting existing attribute. An instance of the above can be obtained using the below methods. For inserting or updating attributes {{%code class="language-java"%}}//ZCNoSQLUpdateAttributeOperation(ZCNoSQLAttribute attribute, ZCNoSQLValue updateValue); //ZCNoSQLUpdateAttributeOperation(ZCNoSQLAttribute attribute, NoSQLUpdateAttributeFunction updateFunction); //public static ZCNoSQLUpdateAttributeOperation getPutAttributeInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue updateValue); // public static ZCNoSQLUpdateAttributeOperation getPutAttributeInstance(ZCNoSQLAttribute attribute, NoSQLUpdateAttributeFunction updateFunction); new ZCNoSQLUpdateAttributeOperation(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;); new ZCNoSQLUpdateAttributeOperation(&lt;ZCNoSQLAttribute&gt;, &lt;NoSQLUpdateAttributeFunction&gt;); ZCNoSQLUpdateAttributeOperation.getPutAttributeInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;); ZCNoSQLUpdateAttributeOperation.getPutAttributeInstance(&lt;ZCNoSQLAttribute&gt;, &lt;NoSQLUpdateAttributeFunction&gt;) {{%/code%}} For Deleting attributes {{%code class="language-java"%}}//ZCNoSQLUpdateAttributeOperation(ZCNoSQLAttribute attribute); //public static ZCNoSQLUpdateAttributeOperation getDeleteAttributeInstance(ZCNoSQLAttribute attribute); new ZCNoSQLUpdateAttributeOperation(&lt;ZCNoSQLAttribute&gt;); ZCNoSQLUpdateAttributeOperation.getDeleteAttributeInstance(&lt;ZCNoSQLAttribute&gt;); {{%/code%}} Update also have certain prebuilt functions that can be used to update the values. These functions can be grouped under the type NoSQLUpdateAttributeFunction and can be used while obtaining the ZCNoSQLUpdateAttributeOperation instance. ### NoSQLUpdateAttributeFunction There are 4 prebuild functions. #### ZCNoSQLIfNotExistFunction This function is used update the attribute with the value of another existing attribute. If the attribute does not exist, then the given value is updated. {{%code class="language-java"%}}//public ZCNoSQLIfNotExistFunction(ZCNoSQLAttribute attribute, ZCNoSQLValue value) //public static ZCNoSQLIfNotExistFunction getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue value); new ZCNoSQLIfNotExistFunction(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLIfNotExistFunction.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) {{%/code%}} #### ZCNoSQLAppendListFunction This function is append elements to existing or new list attribute. {{%code class="language-java"%}}//public ZCNoSQLAppendListFunction(ZCNoSQLValue...values); //public static ZCNoSQLAppendListFunction getInstance(ZCNoSQLValue...values); new ZCNoSQLAppendListFunction(&lt;List of ZCNoSQLValue&gt;) ZCNoSQLAppendListFunction.getInstance(&lt;List of ZCNoSQLValue&gt;) {{%/code%}} #### ZCNoSQLAdditionFunction This function is used to add elements to a set or add numeric value to existing attribute. The type of operation depends on the targetted attribute type. {{%code class="language-java"%}}//public ZCNoSQLAdditionFunction(ZCNoSQLAttribute attribute, ZCNoSQLValue value); //public static ZCNoSQLAdditionFunction getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue value); new ZCNoSQLAdditionFunction(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLAdditionFunction.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) {{%/code%}} #### ZCNoSQLReductionFunction This function is used to remove elements from a set or subtract numeric value to existing attribute. The type of operation depends on the targetted attribute type. {{%code class="language-java"%}}//public ZCNoSQLReductionFunction(ZCNoSQLAttribute attribute, ZCNoSQLValue value) throws Exception; //public static ZCNoSQLReductionFunction getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue value) throws Exception; new ZCNoSQLReductionFunction(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLReductionFunction.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) {{%/code%}} Other methods available in ZCNoSQLUpdateHelper #### ZCNoSQLCondition The Same conditions described above can be reused for update too. NOSQL_RETURN_VALUE The Same return value described above can be reused for update too. Update with Condition and Return Value {{%code class="language-java"%}}table.getUpdateHelper(&lt;ZCNoSQLItem&gt;,&lt;ZCNoSQLUpdateAttributeOperation&gt;).withCondition(&lt;ZCNoSQLCondition&gt;).withReturnValue(&lt;NOSQL_RETURN_VALUE&gt;).update(); {{%/code%}} -------------------------------------------------------------------------------- title: "Fetch Items from NoSQL Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch items from a NoSQL table." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/fetch-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Fetch Items from NoSQL Table Catalyst enables you to fetch items from a NoSQL table by identifying them with their primary keys. For instance, you can use just the partition key or a combination of the partition key and sort key to fetch the item. You can also optionally filter the attributes to be fetched by specifying the required attributes. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to fetch a maximum of 100 items from a NoSQL table in a single SDK read operation.{{%/note%}} Data can be fetched without filtering specific attributes by using the ZCNoSQLTable instance or it can be fetched with the help of ZCNoSQLFetchHelper instance which can be used to construct the various parts of the request. To fetch data with ZCNoSQLTable Instance, the below can be used. {{%code class="language-java"%}}//public ZCNoSQLResponseBean fetch(ZCNoSQLItem key) throws Exception; table.fetch(&lt;ZCNoSQLItem&gt;);{{%/code%}} To fetch with ZCNoSQLFetchHelper #### ZCNoSQLFetchHelper This class can be used to fetch data from the table and filter our specific attributes. This can be obtained from ZCNoSQLTable instance. {{%code class="language-java"%}}//public ZCNoSQLFetchHelper getFetchHelper(ZCNoSQLItem key) throws Exception; //public ZCNoSQLResponseBean fetch() throws Exception; table.getFetchHelper(&lt;ZCNoSQLItem&gt;).fetch();{{%/code%}} Other methods available in ZCNoSQLFetchHelper #### Required Attributes This method can be used to filter and retrieve only the specific required attributes {{%code class="language-java"%}}/public ZCNoSQLFetchHelper withRequiredAttributes(List&lt;ZCNoSQLAttribute&gt; requiredAttributesList) throws Exception; table.getFetchHelper(&lt;ZCNoSQLItem&gt;).withRequiredAttributes(&lt;List of ZCNoSQLAttributes&gt;).fetch(); {{%/code%}} You can also use consistency to indicate if the read operation must be done using the master or a slave cluster. When set to true, it is queried from the master. If false, it is queried from the slave. Note: In the master-slave replication, the master contains all the data of the database, and the slave contains copies from the master. Performing a read operation from the slave can reduce the overall cost with the trade-off being a minor delay in the updated data being reflected. {{%code class="language-java"%}}//public ZCNoSQLFetchHelper withConsistency(boolean consistency) throws Exception; table.getFetchHelper(&lt;ZCNoSQLItem&gt;).withConsistency(true/false).fetch();{{%/code%}} Fetch with Required Attributes and Consistency {{%code class="language-java"%}}table.getFetchHelper(&lt;ZCNoSQLItem&gt;).withRequiredAttributes(&lt;List of ZCNoSQLAttributes&gt;).withConsistency(true/false).fetch();{{%/code%}} -------------------------------------------------------------------------------- title: "Query NoSQL Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch the metadata of a NoSQL table." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/query-table/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Query NoSQL Table Catalyst enables you to query a NoSQL table and retrieve data by identifying the items using the primary keys of the table. For instance, you can use just the partition key or a combination of the partition key and sort key to retrieve the item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to retrieve a maximum of 100 items in bulk from a NoSQL table with pagination from a single SDK operation.{{%/note%}} You can define the key condition that identifies the item by specifying the attributes, their required values, and the supported operator to be used. Refer to the help section for a list of supported operators and help on querying from the Catalyst console. To query the data with ZCNoSQLTable Instance, the snippet below can be used. {{%code class="language-java"%}}//public ZCNoSQLResponseBean queryTable(ZCNoSQLPartitionKeyCondition partitionKeyCondition, boolean forwardScan, int limit) throws Exception; table.query(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;); {{%/code%}} To query with ZCNoSQLQueryHelper ZCNoSQLQueryHelper This class can be used to query data from the table and also specifiy other conditions, sorting order, limit etc. This can be obtained from ZCNoSQLTable instance. {{%code class="language-java"%}}//public ZCNoSQLQueryHelper getQueryHelper(ZCNoSQLPartitionKeyCondition partitionKeyCondition, boolean forwardScan, int limit) throws Exception; //public ZCNoSQLResponseBean queryTable() throws Exception; table.getQueryHelper(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;).queryTable(); {{%/code%}} ZCNoSQLPartitionKeyCondition This is used to construct partition key criteria. This is necessary to query data from the table or index. {{%code class="language-java"%}}//public ZCNoSQLPartitionKeyCondition(ZCNoSQLAttribute attribute, ZCNoSQLValue value) throws Exception; //public static ZCNoSQLPartitionKeyCondition getInstance(ZCNoSQLAttribute attribute, ZCNoSQLValue value) throws Exception; new ZCNoSQLPartitionKeyCondition(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLPartitionKeyCondition.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;ZCNoSQLValue&gt;) {{%/code%}} Secondary Key Condition This is used to construct sort key criteria. This will be used to indicate if sort key should be used or additional sort key should be used while querying the table. {{%code class="language-java"%}}//public static ZCNoSQLSecondaryKeyCondition getInstance(ZCNoSQLAttribute attribute, SECONDARY_KEY_CONDITION_OPERATOR operator, ZCNoSQLValue value) throws Exception new ZCNoSQLSecondaryKeyCondition(&lt;ZCNoSQLAttribute&gt;, &lt;SECONDARY_KEY_CONDITION_OPERATOR&gt;, &lt;ZCNoSQLValue&gt;) ZCNoSQLSecondaryKeyCondition.getInstance(&lt;ZCNoSQLAttribute&gt;, &lt;SECONDARY_KEY_CONDITION_OPERATOR&gt;, &lt;ZCNoSQLValue&gt;) //public ZCNoSQLQueryHelper withSecondaryKeyCondition(ZCNoSQLSecondaryKeyCondition secondaryKeyCondition, Boolean isAdditionalSortKey) throws Exception; table.getQueryHelper(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;).withSecondaryKeyCondition(&lt;ZCNoSQLSecondaryKeyCondition&gt;, &lt;true/false&gt;).queryTable(); {{%/code%}} Other methods available in ZCNoSQLQueryHelper SECONDARY_KEY_CONDITION_OPERATOR This can have the values begins_with, between, equals, greater_than, less_than, greater_equal, less_equal; Other Conditions This can be used to filter the data retrieved using partition key and sort key if specified. This will apply only on top on the data retrieved using the keys. So there can be scenarios where data maybe present for the given partition key, sort key and other conditions but to the maximum limit of 100 items, 0 items may be returned after applying the other condition along with the start key. {{%code class="language-java"%}}//public ZCNoSQLQueryHelper withOtherCondition(ZCNoSQLCondition otherCondition) throws Exception; table.getQueryHelper(<ZCNoSQLPartitionKeyCondition>, <true/false>, <limit>).withOtherCondition(<ZCNoSQLCondition>).queryTable(); {{%/code%}} Start Key This is used for pagination. Upon querying data from the table/index, if more record exists, the start key will be returned. To fetch the next set of data, this value has to be set from the previous request's response. {{%code class="language-java"%}}//public ZCNoSQLQueryHelper withStartKey(ZCNoSQLItem startKey); table.getQueryHelper(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;).withStartKey(&lt;ZCNoSQLItem&gt;).queryTable(); {{%/code%}} -------------------------------------------------------------------------------- title: "Query NoSQL Index" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch the metadata of a NoSQL table." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/query-index/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Query NoSQL Index Catalyst enables you to query a NoSQL index and retrieve data by identifying the items using the primary keys of the index. Indexing allows you to execute alternate queries on the table data without making use of the primary keys of the main table. You can configure indexes from the Catalyst console. You can therefore use just the partition key or a combination of the partition key and sort key of the index to retrieve an item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to retrieve a maximum of 100 items in bulk from a NoSQL table with pagination from a single SDK operation. {{%/note%}} You can define the key condition that identifies the item by specifying the attributes, their required values, and the supported operator to be used. Refer to the help section on a list of supported operators and help on querying from the Catalyst console. To query the data with ZCNoSQLTable Instance, the below can be used. {{%code class="language-java"%}}//public ZCNoSQLResponseBean queryIndex(Long indexID, ZCNoSQLPartitionKeyCondition partitionKeyCondition, boolean forwardScan, int limit) throws Exception; table.queryIndex(&lt;indexID&gt;, &lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;);{{%/code%}} To query with ZCNoSQLQueryHelper ZCNoSQLQueryHelper This class can be used to query data from the index and also specifiy other conditions, sorting order, limit etc. This can be obtained from ZCNoSQLTable instance. {{%code class="language-java"%}}//public ZCNoSQLQueryHelper getQueryHelper(ZCNoSQLPartitionKeyCondition partitionKeyCondition, boolean forwardScan, int limit) throws Exception; //public ZCNoSQLResponseBean queryTable() throws Exception; table.getQueryHelper(&lt;ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;).queryIndex(&lt;indexID&gt;);{{%/code%}} ZCNoSQLPartitionKeyCondition The same Partition Key Condition described above can be reused here too. Other methods available in ZCNoSQLQueryHelper Required Attributes The same Required Attributes described above can be reused here too. Consistence Catalyst NoSQL also lets you define other elements of the query, such as using consistent_read to indicate if the read operation must be done using the master or a slave cluster, limiting the number of rows to be returned, and specifying the sorting order as ascending. Note: In the master-slave replication, the master contains all the data of the database, and the slave contains copies from the master. Performing a read operation from the slave can reduce the overall cost with the trade-off being a minor delay in the updated data being reflected. Secondary Key Condition The same Secondary Key Condition described above can be reused here too with the exception that additionalSort key cannot be used for index Other Conditions The other conditions mentioned for querying tables can be reused here too. Start Key The same Start Key described above can be used here too. Index Query with all combinations {{%code class="language-java"%}}table.getQueryHelper(ZCNoSQLPartitionKeyCondition&gt;, &lt;true/false&gt;, &lt;limit&gt;) .withSecondaryKSeyCondition(&lt;ZCNoSQLSecondaryKeyCondition&gt;, false) .withOtherCondition(&lt;ZCNoSQLCondition&gt;) .withRequiredAttributes(&lt;List of ZCNoSQLAttributes&gt;) .withConsistency(true/false) .withStartKey(&lt;ZCNoSQLItem&gt;) .queryIndex(&lt;indexID&gt;);{{%/code%}} -------------------------------------------------------------------------------- title: "Delete Items from Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch the metadata of a NoSQL table." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/nosql/delete-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Delete Items from NoSQL Table You can delete items from a NoSQL table in Catalyst by identifying them using the primary keys of the table. For instance, you use just the partition key, or a combination of the partition key and sort key of the table, to identify an item. Note: Catalyst enables you to delete a maximum of 25 items in bulk from a NoSQL table with a single SDK operation. Data can be deleted without any conditions by using the ZCNoSQLTable instance or it can be deleted with the help of ZCNoSQLDeleteHelper instance which can be used to construct the various parts of the request. To delete data with ZCNoSQLTable Instance, the below can be used. {{%code class="language-java"%}}//public ZCNoSQLResponseBean delete(ZCNoSQLItem key) throws Exception; table.delete(&lt;ZCNoSQLItem&gt;);{{%/code%}} To delete with ZCNoSQLDeleteHelper ZCNoSQLDeleteHelper This class can be used to delete data from the table with conditions. This can be obtained from ZCNoSQLTable instance. {{%code class="language-java"%}}//public ZCNoSQLDeleteHelper getDeleteHelper(ZCNoSQLItem keys) throws Exception; //public ZCNoSQLResponseBean delete() throws Exception; table.getDeleteHelper(&lt;ZCNoSQLItem&gt;).delete();{{%/code%}} Other methods available in ZCNoSQLDeleteHelper ZCNoSQLCondition The Same conditions described above can be reused for delete. NOSQL_RETURN_VALUE The same conditions described above can be reused for delete. Delete with Condition and Return Value {{%code class="language-java"%}}table.getDeleteHelper(&lt;ZCNoSQLItem&gt;).withCondition(&lt;ZCNoSQLCondition&gt;).withReturnValue(&lt;NOSQL_RETURN_VALUE&gt;).delete();{{%/code%}} --- ## SDK — Node JS — NoSQL -------------------------------------------------------------------------------- title: "Get Component Instance" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to create a new NoSQL component instance." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) - NoSQL Java SDK (/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/) - NoSQL Python SDK (/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/) -------------------------------------------------------------------------------- # NoSQL {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} is a fully managed non-relational, NoSQL data storage feature that enables you to store the semi-structured, unstructured, and disparate data of your applications. Catalyst supports document-type data storage in the key-value pair based JSON format. The Catalyst NoSQL Node.js SDK package enables you to perform CRUD data operations on your NoSQL tables in your project. You can fetch the metadata of your NoSQL tables, create NoSQL items of various supported data types, and insert, update, fetch, or delete items in a specific table. You can also query tables or indexes of tables by specifying query conditions. ### Create a NoSQL Instance A component instance is an object that can be used to access the pre-defined configurations specific to a particular component. You can create a NoSQL object to perform SDK operations in Node.js as shown below. This will not fire a server-side call. We will refer to this nosql instance in various code snippets of working with NoSQL. The {{%badge%}}app{{%/badge%}} reference used to create the NoSQL instance is the Node.js object returned as the response during the {{%link href="/en/sdk/nodejs/v2/overview/#initialize-the-sdk" %}}SDK initialization{{%/link%}}. {{%code class="language-javascript" scroll="set-scroll" %}}// Create a NoSQL instance const nosql = app.nosql();{{% /code%}} -------------------------------------------------------------------------------- title: "Get Table Metadata" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch NoSQL table metadata. " last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/get-table-metadata/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/en/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Get NoSQL Table Metadata You can get the metadata of a single {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} table or of all tables in your project as described below. ### Get Metadata of Single Table The metadata of a single table in Catalyst NoSQL can be obtained in two ways as mentioned in this page. The response will contain details of the table configuration, such as the partition key and sort key, TTL attribute, and more. The {{%badge%}}nosql{{%/badge%}} reference used in the code snippets below is the component instance created to perform these operations. #### Get Table Metadata with Table ID You can fetch the metadata of a NoSQL table in your project by referring to its unique Table ID using the method {{%badge%}}getTable(){{%/badge%}} as given below. {{%code class="language-javascript" scroll="set-scroll" %}}// Create a NoSQL instance const nosql = app.nosql(); // Get table metadata using the Table ID const tableA = await nosql.getTable('124567890'); {{% /code%}} #### Get Table Metadata with Table Name You can fetch the metadata of a NoSQL table in your project by referring the table name using the method {{%badge%}}getTable(){{%/badge%}} as given below. {{%code class="language-javascript" scroll="set-scroll" %}}// Create a NoSQL instance const nosql = app.nosql(); // Get table metadata using the table name const tableB = await nosql.getTable('EmpTable'); {{% /code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} If you rename the table, you will need to update the changes in your code.{{%/note%}} <br> ### Get Metadata of All Tables Catalyst enables you to fetch the metadata of all the tables in your project using the {{%badge%}}getAllTable(){{%/badge%}} method as shown below. {{%code class="language-javascript" scroll="set-scroll" %}}// Get metadata of all tables const allTables = await nosql.getAllTable();{{% /code%}} -------------------------------------------------------------------------------- title: "Get Table Instance" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to create a NoSQL table instance." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/get-table-instance/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/en/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Get NoSQL Table Instance {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} enables you to fetch an empty table instance of an existing NoSQL table. You can then use this instance to refer to that table and perform all supported table operations. This process will not fire a server-side call. You can get an instance of your NoSQL table in three ways as described in this section. The {{%badge%}}nosql{{%/badge%}} reference used in the code snippets below is the {{%link href="/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/" %}}component instance{{%/link%}} created earlier. ### Get Instance with Table ID Get a table instance with the unique ID of the table as shown below. {{%code class="language-javascript" scroll="set-scroll" %}}const tableInstanceA = nosql.table('1234567890'); // Create a table instance with Table ID{{% /code%}} <br> ### Get Instance with Table Name Get a table instance with the table's name as shown below. {{%code class="language-javascript" scroll="set-scroll" %}}const tableInstanceB = nosql.table('Emptable'); // Create a table instance with the table name{{% /code%}} <br> ### Get Instance with Table Details Get a table instance by specifying the details of the table and resolving it to {{%badge%}}toJSON(){{%/badge%}} as shown below. This method provides flexibility by allowing you to duplicate a table object whose instance you already fetched using the Table ID or table name. You can then configure additional details of the table to the instance and use this to refer to the table instead. {{%code class="language-javascript" scroll="set-scroll" %}}const tableInstanceC = nosql.table(tableA.toJSON()); // Create a table instance with table details{{% /code%}} -------------------------------------------------------------------------------- title: "Construct NoSQL Item" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the methods to construct a NoSQL items of various data types." last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/construct-item/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Basic Components (/en/cloud-scale/help/nosql/components/#basic-components) - Supported Data Types in NoSQL (/en/cloud-scale/help/nosql/working-with-data/introduction/) -------------------------------------------------------------------------------- # Construct NoSQL Item {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} items represent a collection of attributes that hold the data of a single data point, like records. You can insert or update items into an existing NoSQL table in your project in a {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Custom JSON format{{%/link%}}. However, before you insert or update an item in Catalyst, you will need to construct the item. You can construct a NoSQL item of attributes containing different data types supported by Catalyst as described in the section below. Catalyst supports several data types such as String, Number, Set of Strings, Set of Numbers, List, and Map. Refer to the full list of {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}supported data types{{%/link%}} to learn more. You must mandatorily provide the values for the partition key attribute that you configured for a table in every data item. Refer to the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}Table Keys help section{{%/link%}} to learn about the table keys, TTL attribute, and other details. <br> ### Create a New NoSQL Item You can create a new NoSQL item using the {{%badge%}}NoSQLItem(){{%/badge%}} method after requiring the {{%badge%}}no-sql{{%/badge%}} library which is a part of the {{%badge%}}zcatalyst-sdk-node{{%/badge%}} package, as shown below. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); const item = new NoSQLItem() // Create a new NoSQL item{{%/code%}} <br> ### Construct a NoSQL Item of String In the example below, we construct an item that includes string values and a nested JSON attribute {{%badge%}}color{{%/badge%}} as a Map. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); const item = new NoSQLItem() // Create a new NoSQL item // Add a string value .addString('fruit', 'mango') // Add a map .addMap('properties', { color: 'yellow' });{{% /code%}} <br> ### Construct a NoSQL Byte You can create a NoSQL byte to store values of the *Binary* data type, by creating a buffer object that is used to represent a sequence of bytes. You can then create a byte in two ways as shown below: using the {{%badge%}}ArrayBuffers{{%/badge%}} object that represents a raw binary data buffer, or from a Base64 string that represents binary data in the ASCII format. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLByte } = require('zcatalyst-sdk-node/lib/no-sql'); // Create a NoSQL Byte const buff = Buffer.from('Hello world !!!'); // Create a buffer object const byte = new NoSQLByte(buff); // Create a NoSQL byte using the ArrayBuffers object const byteA = new NoSQLByte(buff.toString('base64')); // Create a NoSQL byte from a Base64 string{{% /code%}} <br> ### Construct a NoSQL Byte Set Catalyst enables you to create a NoSQL byte set to store a collection of binary values of the *Set of Binary* data type, by creating a buffer object that is used to represent a sequence of bytes. You can then create a byte set by using the {{%badge%}}ArrayBuffers{{%/badge%}} object that represents a raw binary data buffer, or from a Base64 string that represents binary data in the ASCII format. You can also create a byte set from passing constructed bytes as a byte array. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLByte, NoSQLByteSet } = require('zcatalyst-sdk-node/lib/no-sql'); // Create a NoSQL Byte Set const buff = Buffer.from('Hello world !!!'); // Create a buffer object const byte = new NoSQLByte(buff); // Create a NoSQL byte using the ArrayBuffers object const byteA = new NoSQLByte(buff.toString('base64')); // Create a NoSQL byte from a Base64 string const byteSet = new NoSQLByteSet([byte, byteA]); // Create a NoSQL byte set from a NoSQL byte array const byteSetA = new NoSQLByteSet([buff.toString('base64')]); // Create a NoSQL Byte set from a Base64 string array const byteSetB = new NoSQLByteSet([buff]); // Create a NoSQL Byte set using the ArrayBuffers object{{% /code%}} <br> ### Construct a NoSQL String Set You can create a NoSQL string set of the *Set of String* data type from a string array as shown below. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLStringSet } = require('zcatalyst-sdk-node/lib/no-sql'); // Create a NoSQL string set const stringSet = new NoSQLStringSet(['hello', 'world']); // Create a NoSQL string set from a string array{{% /code%}} <br> ### Construct a NoSQL Number Set You can create NoSQL number set of the *Set of Numbers* data type from an array of numbers or BigInt values as shown below. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLNumberSet } = require('zcatalyst-sdk-node/lib/no-sql'); // Create a NoSQL number set const numberSet = new NoSQLNumberSet([123, 1234n]); // Create a NoSQL Number set from an array of numbers or BigInt values{{% /code%}} <br> ### Manipulate NoSQL Items Catalyst enables you to perform manipulations on a NoSQL items, such as creating a NoSQL item from a plain JavaScript object, or vice versa. You can create a NoSQL item by constructing a plain JavaScript object that contains the item's data in it, in the standard JSON format. You can then construct the NoSQL item from the JS object using {{%badge%}}NoSQLItem.from(){{%/badge%}} as shown in the sample code below. You can also convert a NoSQL item back into a plain JavaScript object using {{%badge%}}itemFromObj.to(){{%/badge%}}, as depicted in the code. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); // Define an object const obj = { fruit: 'apple', // Partition key properties: { color: 'red' } }; const itemFromObj = NoSQLItem.from(obj); // Construct a NoSQL item from the plain JS object const plainJsObject = itemFromObj.to(); // Convert the item to a plain JS object{{% /code%}} -------------------------------------------------------------------------------- title: "Insert Items in Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK methods to insert items in a NoSQL table in various ways." last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/insert-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Insert Items in NoSQL Table Catalyst enables you to insert items in a specific {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table after you construct them. The items can be inserted in different ways as described in this section. You can refer to the help sections on adding and working with data, the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Catalyst custom JSON format{{%/link%}}, and the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}supported data types{{%/link%}} to learn these topics in detail. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to insert a maximum of 25 items in bulk in a NoSQL table with a single SDK operation.{{%/note%}} <br> ### Insert Items without Conditions You can insert new items into a NoSQL table without any conditions by constructing the items in the Catalyst custom JSON format. This will require you to mandatorily pass the values for the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}partition key and sort key{{%/link%}} attributes configured for the table. In the example given below, an item containing the value of the partition key attribute {{%badge%}}fruitName{{%/badge%}} is provided as "Banana". Other attributes of the string data type such as {{%badge%}}fruitColor{{%/badge%}} and {{%badge%}}fruitType{{%/badge%}} are also added as a map called {{%badge%}}fruitProperties{{%/badge%}}. The item is inserted using the {{%badge%}}insertItems(){{%/badge%}} method. {{%code class="language-javascript" scroll="set-scroll" %}}// Insert a NoSQL item without conditions const plainInsert = await table.insertItems({ // Define the item to be inserted with the partition key fruitName item: NoSQLItem.from({ fruitName: 'Banana', //Provide values for the other attributes of the item fruitProperties: { fruitColor: 'Yellow', fruitType: 'Berries' } }), // Set the return value in the response. Other supported values are "OLD" and "NULL" return: NoSQLReturnValue.NEW });{{%/code%}} <br> ### Insert Items with Conditional Functions You can insert attributes in existing items in a NoSQL table using specific conditions that you define in the Catalyst custom JSON format. In this type, the existing data of the table is retrieved and evaluated against the specified condition. The items are inserted only if the evaluation is true. If there is no existing data, the conditions are ignored and the items are inserted. Catalyst supports multiple operators to evaluate conditions. The supported operators are represented as shown below. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>{{%badge%}}contains{{%/badge%}}</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>{{%badge%}}not_contains{{%/badge%}}</td> </tr> <tr> <td>BEGINS_WITH</td> <td>{{%badge%}}begins_with{{%/badge%}}</td> </tr> <tr> <td>ENDS_WITH</td> <td>{{%badge%}}ends_with{{%/badge%}}</td> </tr> <tr> <td>IN</td> <td>{{%badge%}}in{{%/badge%}}</td> </tr> <tr> <td>NOT_IN</td> <td>{{%badge%}}not_in{{%/badge%}}</td> </tr> <tr> <td>BETWEEN</td> <td>{{%badge%}}between{{%/badge%}}</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>{{%badge%}}not_between{{%/badge%}}</td> </tr> <tr> <td>EQUALS</td> <td>{{%badge%}}equals{{%/badge%}}</td> </tr> <tr> <td>NOT_EQUALS</td> <td>{{%badge%}}not_equals{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN</td> <td>{{%badge%}}greater_than{{%/badge%}}</td> </tr> <tr> <td>LESS_THAN</td> <td>{{%badge%}}less_than{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>{{%badge%}}greater_equal{{%/badge%}}</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>{{%badge%}}less_equal{{%/badge%}}</td> </tr> <tr> <td>AND</td> <td>{{%badge%}}AND{{%/badge%}}</td> </tr> <tr> <td>OR</td> <td>{{%badge%}}OR{{%/badge%}}</td> </tr> </tbody> </table> <br> The example below illustrates this by defining a condition for the data type of the attribute {{%badge%}}fruitName{{%/badge%}} to be String in the existing data. If the condition is satisfied, the attribute {{%badge%}}taste{{%/badge%}} with the value "Sweet" is added to these items. {{%code class="language-javascript" scroll="set-scroll" %}}// Insert a NoSQL item with the "attribute_type" function const attrTypeInsert = await table.insertItems({ // Define the item to be inserted item: NoSQLItem.from({ taste: 'Sweet' }), // Define the condition for insert condition: { // The condition specifies that the item should be added if the attribute type is String ("S") function: { // Set the function type function_name: 'attribute_type', // Supply the arguments to the function args: [ { // Set the attribute path attribute_path: ['fruitName'] }, // Set the attribute type NoSQLMarshall.makeString('S') // => { "S": "S" } ] } } });{{%/code%}} <br> Here are some more sample snippets for inserting items with conditional functions. {{%code class="language-javascript" scroll="set-scroll" %}}//Insert a NoSQL Item with the "equals" operator, attribute "name" value equals "apple" const operatorEqInsert = await table.insertItems({ // Define the item to be inserted item: NoSQLItem.from({ taste: 'Sweet' }), // Define the condition for insert condition: { // Set the attribute path attribute: ['name'], // Set the operator based on the operation operator: NoSQLOperator.EQUALS, // Set the value for comparison value: NoSQLMarshall.makeString('apple') // => { "S": "apple" } } }); //Insert a NoSQL Item with "group_operator", attribute "name" is "apple" AND attribute "variety" is "gala" const groupOpInsert = await table.insertItems({ // Define the item to be inserted item: NoSQLItem.from({ taste: 'Sweet' }), // Define the condition for insert condition: { // Set the group operator group_operator: NoSQLConditionGroupOperator.AND, // Supply the group conditions group: [ { // Set the attribute path attribute: 'name', // Set operator based on the operation operator: NoSQLOperator.EQUALS, // Set the value for comparison value: NoSQLMarshall.makeString('apple') // => { "S": "apple" } }, { // Set the attribute path attribute: 'variety', // Set the operator based on the operation operator: NoSQLOperator.EQUALS, // Set the value for comparison value: NoSQLMarshall.makeString('gala') // => { "S": "gala" } } ] } }); //Insert a NoSQL Item with the "begins_with" operator, attribute "name" value begins with "app" const beginsWithInsert = await table.insertItems({ // Define the item to be inserted item: NoSQLItem.from({ taste: 'Sweet' }), // Define the condition for insert condition: { // Set the attribute path attribute: ['name'], // Set the operator based on the operation operator: NoSQLOperator.BEGINS_WITH, // set the value for comparison value: NoSQLMarshall.makeString('app') // => { "S": "app" } } });{{%/code%}} -------------------------------------------------------------------------------- title: "Update Items in Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to update items in a NoSQL table." last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/update-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - Basic Components (/en/cloud-scale/help/nosql/components/#basic-components) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/update-item/#UpdateItem) -------------------------------------------------------------------------------- # Update Items in Table Catalyst enables you to update items in a specific {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table after you construct them. An item can be updated by identifying it using its {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}}. For instance, you can use just the partition key or a combination of the partition key and sort key to identify the item. You can then define the update operation type with the appropriate HTTP request method and provide the attributes and values to be updated in the item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to update a maximum of 25 items in bulk in a NoSQL table with a single SDK operation.{{%/note%}} The example below illustrates this by identifying an item with the partition key {{%badge%}}fruitName{{%/badge%}} and value "Apple". The values for the attributes of this item to be updated, {{%badge%}}color{{%/badge%}} and {{%badge%}}taste{{%/badge%}} are provided, along with the path to these attributes. The {{%badge%}}no-sql{{%/badge%}} library from the {{%badge%}}zcatalyst-sdk-node package{{%/badge%}} is required to define and construct the NoSQL item. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLItem, NoSQLEnum } = require('zcatalyst-sdk-node/lib/no-sql'); const { NoSQLOperator } = NoSQLEnum; // Update a NoSQL Item identified with the partition key "apple" with its properties attribute updated const updatedItems = await table.updateItems({ // Define the partition key value of the item to be updated keys: [new NoSQLItem().addString('fruit', 'apple')], // Define the attributes to be updated update_attributes: [ { // Specify the type of the update operation operation_type: NoSQLUpdateOperationType.PUT, // Provide the values for the attribute to be updated update_value: NoSQLMarshall.makeMap({ color: 'Green', taste: 'Sour' }), // Specify the path to the attributes attribute_path: ['fruitProperties'] } ] });{{%/code%}} -------------------------------------------------------------------------------- title: "Fetch Items from Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch items from a NoSQL table." last_updated: "2026-03-18T07:41:08.593Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/fetch-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Basic Components (/en/cloud-scale/help/nosql/components/#basic-components) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/fetch-item/#FetchItem) -------------------------------------------------------------------------------- # Fetch Items from NoSQL Table Catalyst enables you to fetch items from a {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table by identifying them with their {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}}. For instance, you can use just the partition key or a combination of the partition key and sort key to fetch the item. You can also optionally filter the attributes to be fetched by specifying the required attributes. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to fetch a maximum of 100 items from a NoSQL table in a single SDK read operation. {{%/note%}} The example below illustrates fetching an item identified by its partition key {{%badge%}}fruit{{%/badge%}} with the value "apple" using {{%badge%}}fetchItem(){{%/badge%}}. Specific attributes such as {{%badge%}}properties{{%/badge%}} and {{%badge%}}taste{{%/badge%}} are filtered to be fetched using {{%badge%}}required_attributes{{%/badge%}}. The code snippet also uses {{%badge%}}consistent_read{{%/badge%}} to indicate if the read operation must be done using the master or a slave cluster. When set to {{%badge%}}true{{%/badge%}}, it is queried from the master. If {{%badge%}}false{{%/badge%}}, it is queried from the slave. {{%note%}}{{%bold%}}Note:{{%/bold%}} In the master-slave replication, the master contains all the data of the database, and the slave contains copies from the master. Performing a read operation from the slave can reduce the overall cost with the trade-off being a minor delay in the updated data being reflected.{{%/note%}} The {{%badge%}}no-sql{{%/badge%}} library from the {{%badge%}}zcatalyst-sdk-node{{%/badge%}} package is required to define the NoSQL item. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); //Fetch properties of a NoSQLItem identified with the partition key value "apple" const fetchedItem = await table.fetchItem({ // Define the partition key and value of the item to be fetched keys: [new NoSQLItem().addString('fruit', 'apple')], // Set consistent_read to true to query from master. If set to false, it is queried from slave. consistent_read: true, // Specify the attributes to be fetched required_attributes: [['properties', 'taste']] });{{%/code%}} -------------------------------------------------------------------------------- title: "Query Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to query a NoSQL table." last_updated: "2026-03-18T07:41:08.593Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/query-table/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Table Keys (/en/cloud-scale/help/nosql/components/#table-keys) - Query Table (/en/sdk/nodejs/v2/cloud-scale/nosql/query-table/) -------------------------------------------------------------------------------- # Query NoSQL Table Catalyst enables you to query a {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table and retrieve data by identifying the items using the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}} of the table. For instance, you can use just the partition key or a combination of the partition key and sort key to retrieve the item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to retrieve a maximum of 100 items in bulk from a NoSQL table with pagination from a single SDK operation. You must use the {{%badge%}}start_key{{%/badge%}} token received in the SDK response and construct the logic for pagination.{{%/note%}} You can define the key condition that identifies the item by specifying the attributes, their required values, and the supported operator to be used. The supported operators are represented as shown below. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>{{%badge%}}contains{{%/badge%}}</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>{{%badge%}}not_contains{{%/badge%}}</td> </tr> <tr> <td>BEGINS_WITH</td> <td>{{%badge%}}begins_with{{%/badge%}}</td> </tr> <tr> <td>ENDS_WITH</td> <td>{{%badge%}}ends_with{{%/badge%}}</td> </tr> <tr> <td>IN</td> <td>{{%badge%}}in{{%/badge%}}</td> </tr> <tr> <td>NOT_IN</td> <td>{{%badge%}}not_in{{%/badge%}}</td> </tr> <tr> <td>BETWEEN</td> <td>{{%badge%}}between{{%/badge%}}</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>{{%badge%}}not_between{{%/badge%}}</td> </tr> <tr> <td>EQUALS</td> <td>{{%badge%}}equals{{%/badge%}}</td> </tr> <tr> <td>NOT_EQUALS</td> <td>{{%badge%}}not_equals{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN</td> <td>{{%badge%}}greater_than{{%/badge%}}</td> </tr> <tr> <td>LESS_THAN</td> <td>{{%badge%}}less_than{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>{{%badge%}}greater_equal{{%/badge%}}</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>{{%badge%}}less_equal{{%/badge%}}</td> </tr> <tr> <td>AND</td> <td>{{%badge%}}AND{{%/badge%}}</td> </tr> <tr> <td>OR</td> <td>{{%badge%}}OR{{%/badge%}}</td> </tr> </tbody> </table> <br> In the example below, the query is executed using the {{%badge%}}queryTable(){{%/badge%}} method by identifying the items using the partition key {{%badge%}}fruitType{{%/badge%}} and specifying the condition value as "Citrus". Catalyst NoSQL also lets you define other elements of the query, such as using {{%badge%}}consistent_read{{%/badge%}} to indicate if the read operation must be done using the master or a slave cluster, limiting the number of rows to be returned, and specifying the sorting order as ascending. {{%note%}}{{%bold%}}Note:{{%/bold%}} In the master-slave replication, the master contains all the data of the database, and the slave contains copies from the master. Performing a read operation from the slave can reduce the overall cost with the trade-off being a minor delay in the updated data being reflected.{{%/note%}} The {{%badge%}}no-sql{{%/badge%}} library from the {{%badge%}}zcatalyst-sdk-node{{%/badge%}} package is required to define the NoSQL item. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLMarshall, NoSQLEnum } = require('zcatalyst-sdk-node/lib/no-sql'); const { NoSQLOperator } = NoSQLEnum; // Query a NoSQL table to fetch the items identified by the partition key fruitType with the value "citrus" const queriedItem = await table.queryTable({ // Define the key condition to query the items with key_condition: { // Specify the partition key attribute name of the table attribute: 'fruitType', // Define the supported operator to be used. You can also use BETWEEN, GREATERTHAN, LESSERTHAN, GREATERTHANOREQUALTO, LESSERTHANOREQUALTO operator: NoSQLOperator.EQUALS, // Specify the value for comparison value: NoSQLMarshall.makeString('Citrus') }, // Set consistent_read to true to query from master. If set to false, it is queried from slave. consistent_read: true, // Limit the number of rows to be returned by specifying a value limit: 10, // Set forward_scan to true to sort the results in ascending order. Otherwise, it is sorted in the descending order. forward_scan: true });{{%/code%}} -------------------------------------------------------------------------------- title: "Query Index" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to query a NoSQL index." last_updated: "2026-03-18T07:41:08.594Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/query-index/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Table Keys (/en/cloud-scale/help/nosql/components/#table-keys) - Query Index (/en/sdk/nodejs/v2/cloud-scale/nosql/query-index/) -------------------------------------------------------------------------------- # Query Index in NoSQL Catalyst enables you to query a {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} index and retrieve data by identifying the items using the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}} of the index. Indexing allows you to execute alternate queries on the table data without making use of the primary keys of the main table. You can configure indexes from the Catalyst console. You can use just the partition key or a combination of the partition key and sort key of the index to retrieve an item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to retrieve a maximum of 100 items in bulk from a NoSQL table with pagination from a single SDK operation. You must use the {{%badge%}}start_key{{%/badge%}} token received in the SDK response and construct the logic for pagination.{{%/note%}} You can define the key condition that identifies the item by specifying the attributes, their required values, and the supported operator to be used. The supported operators are represented as shown below. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>{{%badge%}}contains{{%/badge%}}</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>{{%badge%}}not_contains{{%/badge%}}</td> </tr> <tr> <td>BEGINS_WITH</td> <td>{{%badge%}}begins_with{{%/badge%}}</td> </tr> <tr> <td>ENDS_WITH</td> <td>{{%badge%}}ends_with{{%/badge%}}</td> </tr> <tr> <td>IN</td> <td>{{%badge%}}in{{%/badge%}}</td> </tr> <tr> <td>NOT_IN</td> <td>{{%badge%}}not_in{{%/badge%}}</td> </tr> <tr> <td>BETWEEN</td> <td>{{%badge%}}between{{%/badge%}}</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>{{%badge%}}not_between{{%/badge%}}</td> </tr> <tr> <td>EQUALS</td> <td>{{%badge%}}equals{{%/badge%}}</td> </tr> <tr> <td>NOT_EQUALS</td> <td>{{%badge%}}not_equals{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN</td> <td>{{%badge%}}greater_than{{%/badge%}}</td> </tr> <tr> <td>LESS_THAN</td> <td>{{%badge%}}less_than{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>{{%badge%}}greater_equal{{%/badge%}}</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>{{%badge%}}less_equal{{%/badge%}}</td> </tr> <tr> <td>AND</td> <td>{{%badge%}}AND{{%/badge%}}</td> </tr> <tr> <td>OR</td> <td>{{%badge%}}OR{{%/badge%}}</td> </tr> </tbody> </table> <br> In the example below, the query is executed by identifying the items using the index {{%badge%}}FruitIdentifier{{%/badge%}} 's partition key {{%badge%}}fruitColor{{%/badge%}} and specifying the condition value as "yellow". The query is done using the {{%badge%}}queryIndex(){{%/badge%}} method. Catalyst NoSQL also lets you define other elements of the query, such as using {{%badge%}}consistent_read{{%/badge%}} to indicate if the read operation must be done using the master or a slave cluster, limiting the number of rows to be returned, and specifying the sorting order as ascending. {{%note%}}{{%bold%}}Note:{{%/bold%}} In the master-slave replication, the master contains all the data of the database, and the slave contains copies from the master. Performing a read operation from the slave can reduce the overall cost with the trade-off being a minor delay in the updated data being reflected.{{%/note%}} The {{%badge%}}no-sql{{%/badge%}} library from the {{%badge%}}zcatalyst-sdk-node{{%/badge%}} package is required to define the NoSQL item. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLMarshall, NoSQLEnum } = require('zcatalyst-sdk-node/lib/no-sql'); const { NoSQLOperator } = NoSQLEnum; //Query a NoSQL table index to fetch the items identified by the partition key fruitColour with the value "yellow" const queriedIndexItems = await table.queryIndex('FruitIdentifier', { //Define the key condition to query the items with key_condition: { attribute: 'fruitColor', //Define the supported operator to be used operator: NoSQLOperator.EQUALS, value: NoSQLMarshall.makeString('yellow') }, // Set consistent_read to true to query from master. If set to false, it is queried from slave. consistent_read: true, //Limit the number of rows to be returned by specifying a value limit: 15, // Set forward_scan to true to sort the results in ascending order. Otherwise, it is sorted in the descending order. forward_scan: true });{{%/code%}} -------------------------------------------------------------------------------- title: "Delete Items from Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to delete items from a NoSQL table." last_updated: "2026-03-18T07:41:08.594Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/nosql/delete-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - Basic Components (/en/cloud-scale/help/nosql/components/#basic-components) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/delete-item/#DeleteItem) -------------------------------------------------------------------------------- # Delete Items from NoSQL Table You can delete items from a {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table in Catalyst by identifying them using the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}} of the table. For instance, you use just the partition key, or a combination of the partition key and sort key of the table, to identify an item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to delete a maximum of 25 items in bulk from a NoSQL table with a single SDK operation.{{%/note%}} The delete operation is performed using the {{%badge%}}deleteItems(){{%/badge%}} method as shown in the example below. The item with the partition key {{%badge%}}fruit{{%/badge%}} matching "apple" is deleted. The {{%badge%}}no-sql library{{%/badge%}} from the {{%badge%}}zcatalyst-sdk-node package{{%/badge%}} is required to define NoSQL items. {{%code class="language-javascript" scroll="set-scroll" %}}const { NoSQLItem } = require('zcatalyst-sdk-node/lib/no-sql'); //Delete a NoSQL item from the table with partition key "fruit" and the value matching "apple" const deletedItems = await table.deleteItems({ //Specify the partition key value of the item to be deleted keys: NoSQLItem.from({ fruit: 'apple' }) });{{%/code%}} --- ## SDK — Python — NoSQL -------------------------------------------------------------------------------- title: "Get Component Instance" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to create a new NoSQL component instance." last_updated: "2026-03-18T07:41:08.595Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) - NoSQL Java SDK (/en/sdk/java/v1/cloud-scale/nosql/get-table-metadata/) - NoSQL Node.js SDK (/en/sdk/nodejs/v2/cloud-scale/nosql/get-component-instance/) -------------------------------------------------------------------------------- # Get Component Instance {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} is a fully managed non-relational, NoSQL data storage feature that enables you to store the semi-structured, unstructured, and disparate data of your applications. Catalyst supports document-type data storage in the key-value pair based JSON format. The Catalyst NoSQL Python SDK package enables you to perform CRUD data operations on your NoSQL tables in your project. You can fetch the metadata of your NoSQL tables, create NoSQL items of various supported data types, and insert, update, fetch, or delete items in a specific table. You can also query tables or indexes of tables by specifying query conditions. ### Create a NoSQL Instance A component instance is an object that can be used to access the pre-defined configurations specific to a particular component. You can create a NoSQL object to perform SDK operations in Python as shown below. This will not fire a server-side call. We will refer to this nosql instance in various code snippets of working with NoSQL. The {{%badge%}}app{{%/badge%}} reference used to create the NoSQL instance is the Python object returned as the response during the {{%link href="/en/sdk/python/v1/setup/#initializing-the-sdk" %}}SDK initialization{{%/link%}}. {{%code class="language-python" scroll="set-scroll" %}} #Create a NoSQL instance nosql = app.nosql(){{%/code%}} -------------------------------------------------------------------------------- title: "Get Table Metadata" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch NoSQL table metadata. " last_updated: "2026-03-18T07:41:08.595Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/get-table-metadata/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/en/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Get NoSQL Table Metadata You can get the metadata of a single {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} table or of all tables in your project as described below. ### Get Metadata of Single Table The metadata of a single table in Catalyst NoSQL can be obtained by referring the table name using the method {{%badge%}}getTable(){{%/badge%}} as given below. The response will contain details of the table configuration, such as the partition key and sort key, TTL attribute, and more. The {{%badge%}}nosql{{%/badge%}} reference used in the code snippets below is the component instance created to perform these operations. {{%code class="language-python" scroll="set-scroll" %}}# Create a NoSQL instance nosql = app.nosql() #Get table metadata using the table name table_details = nosql.get_table_resources("EmpTable") print(table_details){{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} If you rename the table, you will need to update the changes in your code.{{%/note%}} <br> ### Get Metadata of All Tables Catalyst enables you to fetch the metadata of all the tables in your project using the {{%badge%}}get_all_tables(){{%/badge%}} method as shown below. {{%code class="language-python" scroll="set-scroll" %}}table_res = nosql.get_all_tables() print(table_res){{%/code%}} -------------------------------------------------------------------------------- title: "Get Table Instance" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to create a NoSQL table instance." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/get-table-instance/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Create and Manage Tables (/en/cloud-scale/help/nosql/create-manage-tables/) -------------------------------------------------------------------------------- # Get NoSQL Table Instance {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} enables you to fetch an empty table instance of a NoSQL table. You can then use this instance to refer to that table and perform all supported table operations. This process will not fire a server-side call. You can get an instance of your NoSQL table by referring to the table's name as shown in this section. The {{%badge%}}nosql{{%/badge%}} reference used in the code snippets below is the {{%link href="/en/sdk/python/v1/cloud-scale/nosql/get-component-instance/" %}}component instance{{%/link%}} created earlier. {{%code class="language-python" scroll="set-scroll" %}}table = nosql.get_table('employees') # Create a table instance with the table name{{%/code%}} -------------------------------------------------------------------------------- title: "Construct Item" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the methods to construct a NoSQL items of various data types."" last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/construct-item/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Basic Components (/en/cloud-scale/help/nosql/components/#basic-components) - Supported Data Types in NoSQL (/en/cloud-scale/help/nosql/working-with-data/introduction/) -------------------------------------------------------------------------------- # Construct NoSQL Item {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}Catalyst NoSQL{{%/link%}} items represent a collection of attributes that hold the data of a single data point, like records. You can insert or update items into an existing NoSQL table in your project in a {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Custom JSON format{{%/link%}}. However, before you insert or update an item in Catalyst, you will need to construct the item. You can construct a NoSQL item of attributes containing different data types supported by Catalyst as described in the section below. Catalyst supports several data types such as String, Number, Set of Strings, Set of Numbers, List, and Map. Refer to the full list of {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}supported data types{{%/link%}} to learn more. You must mandatorily provide the values for the partition key attribute that you configured for a table in every data item. Refer to the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}Table Keys help section{{%/link%}} to learn about the table keys, TTL attribute, and other details. The code snippet below shows the formats for constructing an item with attributes of different data types: {{%code class="language-python" scroll="set-scroll" %}}# Construct a NoSQL item of different data types attributes = { # string "custom_attrib_string": { "S": "John Doe" }, # Number "custom_attrib_num": { "N": "234521" }, # Binary encoded value "custom_attrib_bin": { "B": "SGVsbG9Xb3JsZA==" }, # Set of string "custom_attrib_set_string": { "SS": ["John Doe", "New York", "USA"] }, # set of numbers "custom_attrib_set_num": { "SN": ["23423", "821n", "11"] }, # set of binary values "custom_attrib_set_bin": { "SB": ["SGVsbG8=", "V29ybGQ="] }, # boolean attribute "custom_attrib_bool": { "BOOL": True }, # list attribute "custom_attrib_list": { "L": [{"name": "banana"}, {"quantity": 4}] }, # map attribute "custom_attrib_map": { "M": { "name": { "S": "John Doe" }, "age": { "N": "23" } } } }{{%/code%}} -------------------------------------------------------------------------------- title: "Insert Items" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK methods to insert items in a NoSQL table in various ways." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/insert-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/insert-item/#InsertNewItem) -------------------------------------------------------------------------------- # Insert Items in NoSQL Tables Catalyst enables you to insert items in a specific {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table after you construct them. The items can be inserted in different ways as described in this section. You can refer to the help sections on adding and working with data, the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#the-catalyst-custom-json-format" %}}Catalyst custom JSON format{{%/link%}}, and the {{%link href="/en/cloud-scale/help/nosql/working-with-data/introduction/#supported-data-types" %}}supported data types{{%/link%}} to learn these topics in detail. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to insert a maximum of 25 items in bulk in a NoSQL table with a single SDK operation.{{%/note%}} <br> ### Insert Items without Conditions You can insert new items into a NoSQL table without any conditions by constructing the items in the Catalyst custom JSON format. This will require you to mandatorily pass the values for the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}partition key and sort key{{%/link%}} attributes configured for the table. For example, in the code snippet below, the values for the partition key and sort key attributes of the item, fruitName and Location respectively, are provided. Other attributes of the string data type such as {{%badge%}}fruitType{{%/badge%}} and {{%badge%}}availability{{%/badge%}} are provided as a list {{%badge%}}fruitProperties{{%/badge%}}. The item is then inserted using the {{%badge%}}insert_items(){{%/badge%}} method. {{%code class="language-python" scroll="set-scroll" %}}# Insert a NoSQL item without conditions item = { "fruitName": { "S": "Banana" }, "Location": { "S": "Indonesia" }, "fruitProperties": { "L": [ { "fruitType": "Berries" }, { "availability": "abundant" } } ] } } # Insert the item based on the defined condition and set the item to be returned in the response. Other supported values are "OLD" and "NULL" res = table.insert_items({ 'item': item, 'return': 'NEW' }){{%/code%}} <br> ### Insert Items with Conditional Functions You can insert attributes in existing items in a NoSQL table using specific conditions that you define in the Catalyst custom JSON format. In this type, the existing data of the table is retrieved and evaluated against the specified condition. The items are inserted only if the evaluation is true. If there is no existing data, the conditions are ignored and the items are inserted. Catalyst supports multiple operators to evaluate conditions. The supported operators are represented as shown below. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>{{%badge%}}contains{{%/badge%}}</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>{{%badge%}}not_contains{{%/badge%}}</td> </tr> <tr> <td>BEGINS_WITH</td> <td>{{%badge%}}begins_with{{%/badge%}}</td> </tr> <tr> <td>ENDS_WITH</td> <td>{{%badge%}}ends_with{{%/badge%}}</td> </tr> <tr> <td>IN</td> <td>{{%badge%}}in{{%/badge%}}</td> </tr> <tr> <td>NOT_IN</td> <td>{{%badge%}}not_in{{%/badge%}}</td> </tr> <tr> <td>BETWEEN</td> <td>{{%badge%}}between{{%/badge%}}</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>{{%badge%}}not_between{{%/badge%}}</td> </tr> <tr> <td>EQUALS</td> <td>{{%badge%}}equals{{%/badge%}}</td> </tr> <tr> <td>NOT_EQUALS</td> <td>{{%badge%}}not_equals{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN</td> <td>{{%badge%}}greater_than{{%/badge%}}</td> </tr> <tr> <td>LESS_THAN</td> <td>{{%badge%}}less_than{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>{{%badge%}}greater_equal{{%/badge%}}</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>{{%badge%}}less_equal{{%/badge%}}</td> </tr> <tr> <td>AND</td> <td>{{%badge%}}AND{{%/badge%}}</td> </tr> <tr> <td>OR</td> <td>{{%badge%}}OR{{%/badge%}}</td> </tr> </tbody> </table> <br> The example below illustrates this by defining a condition for the nested attribute {{%badge%}}fruitColour{{%/badge%}} in the existing data to contain the value "Yellow". This attribute is part of the attribute {{%badge%}}fruitProperties{{%/badge%}}. If the condition is satisfied, the attributes {{%badge%}}fruitType{{%/badge%}} and {{%badge%}}availability{{%/badge%}} are added to the items. The item is then inserted using the {{%badge%}}insert_items(){{%/badge%}} method. {{%code class="language-python" scroll="set-scroll" %}}# Insert a NoSQL item with a conditional function condition_function = { "function": { "function_name": "attribute_type", "args": [ { "attribute_path": ["fruitProperties", "[0]"] }, { "fruitColour": "Yellow" } ] } } item = { "Location": { "S": "Indonesia" }, "fruitName": { "S": "Banana" }, "fruitProperties": { "L": [ { "fruitType": "Berries" }, { "availability": "abundant" } } ] } } # Insert the item based on the defined condition and set the return value in the response. Other supported values are "OLD" and "NULL" res = table.insert_items({ 'item': item, 'condition': condition_function, 'return': 'NEW' }){{%/code%}} <br> ### Insert Items with Conditional Operators Catalyst also enables you to insert items based on conditions defined with operators in the Catalyst custom JSON format. The existing data of the table is retrieved and evaluated against the specified condition. The items are inserted only if the evaluation is true. If there is no existing data, the conditions are ignored and the items are inserted. Catalyst supports multiple operators to evaluate conditions, as listed in the [previous section](#insert-items-with-conditional-functions). The example below illustrates inserting an item based on conditions defined with the {{%badge%}}between{{%/badge%}} operator. The condition states that only when the attribute {{%badge%}}count{{%/badge%}} has values between 0 and 10 in the existing data, the attributes {{%badge%}}backupID{{%/badge%}} and {{%badge%}}count{{%/badge%}} are to be inserted in those items. The item is inserted with the {{%badge%}}insert_items(){{%/badge%}} method. {{%code class="language-python" scroll="set-scroll" %}}# Insert a NoSQL item with a conditional operator condition_function = { "attribute": ["count"], "operator": "between", "value": { "L": [ { "N": "0" }, { "N": "10" } ] } } item = { "countryCode": { "N": 054 }, "backupID": { "N": 2379992 }, "count": { "N": "3" } } # Insert the item based on the defined condition and set the return value in the response. Other supported values are "OLD" and "NULL" res = table.insert_items({ 'item': item, 'condition': condition_function, 'return': 'NEW' }){{%/code%}} -------------------------------------------------------------------------------- title: "Update Items" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to update items in a NoSQL table." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/update-items/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Update NoSQL Items in Table Catalyst enables you to update items in a specific {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table after you construct them. An item can be updated by identifying it using its {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}}. For instance, you can use just the partition key or a combination of the partition key and sort key to identify the item. You can then define the update operation type with the appropriate HTTP request method and provide the attributes and values to be updated in the item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to update a maximum of 25 items in bulk in a NoSQL table with a single SDK operation.{{%/note%}} The example below illustrates this by retrieving an item with the partition key {{%badge%}}fruitName{{%/badge%}} and the sort key {{%badge%}}location{{%/badge%}}. The attributes of this item to be updated are {{%badge%}}color{{%/badge%}} and {{%badge%}}taste{{%/badge%}}. The values for all these attributes are provided. You can also optionally define a condition for update. The update will occur only if the condition is met. {{%code class="language-python" scroll="set-scroll" %}}# Update a NoSQL item by identifying it with its primary keys res = table.update_items({ "keys": { "fruitName": { "S": "Banana" }, "location": { "S": "Indonesia" } },# Define the attributes to be updated in the item "update_attributes": [ { "operation_type": "PUT", "color": { "S": "Yellow" }, "taste": { "S": "Sweet" }, "attribute_path": "fruitProperties" } ],# Define a condition. The item will be updated only if this is satisfied. (optional) "condition" : { "function": { "function_name": "attribute_exists", "args": [ { "attribute_path": "fruitProperties" } ] } } }) print(res){{%/code%}} -------------------------------------------------------------------------------- title: "Fetch Items" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to fetch items from a NoSQL table." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/fetch-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Basic Components (/en/cloud-scale/help/nosql/components/#basic-components) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/fetch-item/#FetchItem) -------------------------------------------------------------------------------- # Fetch Items from NoSQL Table Catalyst enables you to fetch items from a {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table by identifying them with their {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}}. For instance, you can use just the partition key or a combination of the partition key and sort key to fetch the item. You can also optionally filter the attributes to be fetched by specifying the required attributes. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to fetch a maximum of 100 items from a NoSQL table in a single SDK read operation. {{%/note%}} The example below illustrates fetching an item identified by its partition key {{%badge%}}fruit{{%/badge%}} and the sort key {{%badge%}}location{{%/badge%}} using {{%badge%}}fetch_item(){{%/badge%}}. Specific attributes such as {{%badge%}}properties{{%/badge%}} and {{%badge%}}taste{{%/badge%}} are filtered to be fetched using {{%badge%}}required_objects{{%/badge%}}. {{%code class="language-python" scroll="set-scroll" %}}# Fetch properties of a NoSQLItem identified with the partition key and sort key res = table.fetch_item({ "keys": [ { "fruit": { "S": "apple" }, "location: { "S": "USA" } } ], # Specify the attributes to be fetched 'required_objects': ["properties", "taste"] }) print(res){{%/code%}} -------------------------------------------------------------------------------- title: "Query Table" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to query a NoSQL table." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/query-table/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Table Keys (/en/cloud-scale/help/nosql/components/#table-keys) - Query Table (/en/sdk/nodejs/v2/cloud-scale/nosql/query-table/) -------------------------------------------------------------------------------- # Query NoSQL Table Catalyst enables you to query a {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table and retrieve data by identifying the items using the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}} of the table. For instance, you can use just the partition key or a combination of the partition key and sort key to retrieve the item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to retrieve a maximum of 100 items in bulk from a NoSQL table with pagination from a single SDK operation. You must use the {{%badge%}}start_key{{%/badge%}} token received in the SDK response and construct the logic for pagination.{{%/note%}} You can define the key condition that identifies the item by specifying the attributes, their required values, and the supported operator to be used. You can also specify additional conditions with the group operators. The supported operators are represented as shown below. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>{{%badge%}}contains{{%/badge%}}</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>{{%badge%}}not_contains{{%/badge%}}</td> </tr> <tr> <td>BEGINS_WITH</td> <td>{{%badge%}}begins_with{{%/badge%}}</td> </tr> <tr> <td>ENDS_WITH</td> <td>{{%badge%}}ends_with{{%/badge%}}</td> </tr> <tr> <td>IN</td> <td>{{%badge%}}in{{%/badge%}}</td> </tr> <tr> <td>NOT_IN</td> <td>{{%badge%}}not_in{{%/badge%}}</td> </tr> <tr> <td>BETWEEN</td> <td>{{%badge%}}between{{%/badge%}}</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>{{%badge%}}not_between{{%/badge%}}</td> </tr> <tr> <td>EQUALS</td> <td>{{%badge%}}equals{{%/badge%}}</td> </tr> <tr> <td>NOT_EQUALS</td> <td>{{%badge%}}not_equals{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN</td> <td>{{%badge%}}greater_than{{%/badge%}}</td> </tr> <tr> <td>LESS_THAN</td> <td>{{%badge%}}less_than{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>{{%badge%}}greater_equal{{%/badge%}}</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>{{%badge%}}less_equal{{%/badge%}}</td> </tr> <tr> <td>AND</td> <td>{{%badge%}}AND{{%/badge%}}</td> </tr> <tr> <td>OR</td> <td>{{%badge%}}OR{{%/badge%}}</td> </tr> </tbody> </table> <br> In the example below, the query is executed using the {{%badge%}}queryTable(){{%/badge%}} method by identifying the items using the partition key {{%badge%}}fruitType{{%/badge%}} and specifying the condition value as "citrus". We also specify an additional condition with the attribute location matching "USA". Catalyst NoSQL also lets you define other elements of the query, such using {{%badge%}}consistent_read{{%/badge%}} to indicate if the read operation must be done using the master or a slave cluster, limiting the number of rows to be returned, and specifying the sorting order as ascending. {{%note%}}{{%bold%}}Note:{{%/bold%}} In the master-slave replication, the master contains all the data of the database, and the slave contains copies from the master. Performing a read operation from the slave can reduce the overall cost with the trade-off being a minor delay in the updated data being reflected.{{%/note%}} {{%code class="language-python" scroll="set-scroll" %}}# Query a NoSQL table to fetch the items identified by the partition key fruitType with the value "citrus" res = table.query_table( { # Set consistent_read to true to query from master. If set to false, it is queried from slave. 'consistent_read': 'true',# Set forwardScan to true to sort the results in ascending order. Otherwise, it is sorted in the descending order. 'forwardScan': 'true',# Limit the number of rows to be returned by specifying a value 'limit': 10,# Define the key condition to identify items 'key_condition': { 'attribute': 'fruitType', 'operator': 'equals', 'value': { 'S': 'citrus' } }, # Specify additional conditions to query the table items using group operators 'other_condition': { 'group_operator': 'and', 'group': [ { 'attribute': 'location', 'operator': 'equals', 'value': { 'S': 'USA' } } ] } }) print(res){{%/code%}} -------------------------------------------------------------------------------- title: "Query Index" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to query a NoSQL index." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/query-index/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Table Keys (/en/cloud-scale/help/nosql/components/#table-keys) - Query Index (/en/sdk/nodejs/v2/cloud-scale/nosql/query-index/) -------------------------------------------------------------------------------- # Query Index Catalyst enables you to query a {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} index and retrieve data by identifying the items using the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}} of the index. Indexing allows you to execute alternate queries on the table data without making use of the primary keys of the main table. You can configure indexes from the Catalyst console. You can use just the partition key or a combination of the partition key and sort key of the index to retrieve an item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to retrieve a maximum of 100 items in bulk from a NoSQL table with pagination from a single SDK operation. You must use the {{%badge%}}start_key{{%/badge%}} token received in the SDK response and construct the logic for pagination.{{%/note%}} You can define the key condition that identifies the item by specifying the attributes, their required values, and the supported operator to be used. You can also specify additional conditions with the group operators. The supported operators are represented as shown below. <table class="content-table nosql-components-table"> <thead> <tr> <th class="w10p">Operators</th> <th class="w10p">Notation</th> </tr> </thead> <tbody> <tr> <td>CONTAINS</td> <td>{{%badge%}}contains{{%/badge%}}</td> </tr> <tr> <td>NOT_CONTAINS</td> <td>{{%badge%}}not_contains{{%/badge%}}</td> </tr> <tr> <td>BEGINS_WITH</td> <td>{{%badge%}}begins_with{{%/badge%}}</td> </tr> <tr> <td>ENDS_WITH</td> <td>{{%badge%}}ends_with{{%/badge%}}</td> </tr> <tr> <td>IN</td> <td>{{%badge%}}in{{%/badge%}}</td> </tr> <tr> <td>NOT_IN</td> <td>{{%badge%}}not_in{{%/badge%}}</td> </tr> <tr> <td>BETWEEN</td> <td>{{%badge%}}between{{%/badge%}}</td> </tr> <tr> <td>NOT_BETWEEN</td> <td>{{%badge%}}not_between{{%/badge%}}</td> </tr> <tr> <td>EQUALS</td> <td>{{%badge%}}equals{{%/badge%}}</td> </tr> <tr> <td>NOT_EQUALS</td> <td>{{%badge%}}not_equals{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN</td> <td>{{%badge%}}greater_than{{%/badge%}}</td> </tr> <tr> <td>LESS_THAN</td> <td>{{%badge%}}less_than{{%/badge%}}</td> </tr> <tr> <td>GREATER_THAN_OR_EQUALS</td> <td>{{%badge%}}greater_equal{{%/badge%}}</td> </tr> <tr> <td>LESSER_THAN_OR_EQUALS</td> <td>{{%badge%}}less_equal{{%/badge%}}</td> </tr> <tr> <td>AND</td> <td>{{%badge%}}AND{{%/badge%}}</td> </tr> <tr> <td>OR</td> <td>{{%badge%}}OR{{%/badge%}}</td> </tr> </tbody> </table> <br> In the example below, the query is performed with an index referenced by its unique Index ID. The query identifies the items using the index's partition key {{%badge%}}fruitColor{{%/badge%}} and specifying the condition value as "yellow". We also specify an additional condition with the attribute {{%badge%}}fruitType{{%/badge%}} matching "citrus". The query is done using the {{%badge%}}query_index(){{%/badge%}} method. Catalyst NoSQL also lets you define other elements of the query, such using {{%badge%}}consistent_read{{%/badge%}} to indicate if the read operation must be done using the master or a slave cluster, limiting the number of rows to be returned, and specifying the sorting order as ascending. {{%note%}}{{%bold%}}Note:{{%/bold%}} In the master-slave replication, the master contains all the data of the database, and the slave contains copies from the master. Performing a read operation from the slave can reduce the overall cost with the trade-off being a minor delay in the updated data being reflected.{{%/note%}} {{%code class="language-python" scroll="set-scroll" %}} # Query a NoSQL table index to fetch the items identified by the partition key fruitColour with the value "yellow"# Pass the index's unique ID cres = table.query_index('6759000000740017', { # Set consistent_read to true to query from master. If set to false, it is queried from slave. 'consistent_read': 'true',# Set forward_scan to true to sort the results in ascending order. Otherwise, it is sorted in the descending order. 'forwardScan': 'true',# Limit the number of rows to be returned by specifying a value 'limit': 10,# Define the key condition to query the items with 'key_condition': { 'attribute': 'fruitColor', 'operator': 'equals', 'value': { 'S': 'yellow' } }, # Define additional conditions to query the data with, using group operators 'other_condition': { 'group_operator': 'AND', 'group': [ { 'attribute': 'fruitType', 'operator': 'equals', 'value': { 'S': 'citrus' } } ] } }) print(res){{%/code%}} -------------------------------------------------------------------------------- title: "Delete Items" description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to delete items from a NoSQL table." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/delete-items/" service: "Cloud Scale" related: - NoSQL (/en/cloud-scale/help/nosql/introduction) - Working with Data (/en/cloud-scale/help/nosql/working-with-data/introduction/) - Basic Components (/en/cloud-scale/help/nosql/components/#basic-components) - NoSQL API (/en/api/code-reference/cloud-scale/nosql/delete-item/#DeleteItem) -------------------------------------------------------------------------------- # Delete Items from NoSQL Table You can delete items from a {{%link href="/en/cloud-scale/help/nosql/introduction/" %}}NoSQL{{%/link%}} table in Catalyst by identifying them using the {{%link href="/en/cloud-scale/help/nosql/components/#table-keys" %}}primary keys{{%/link%}} of the table. For instance, you use just the partition key, or a combination of the partition key and sort key of the table, to identify an item. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst enables you to delete a maximum of 25 items in bulk from a NoSQL table with a single SDK operation.{{%/note%}} The delete operation is performed using the{{%badge%}}delete_items(){{%/badge%}} method as shown in the example below. The item with the partition key {{%badge%}}fruit{{%/badge%}} matching "apple" and the sort key {{%badge%}}location{{%/badge%}} matching "USA" is deleted. You can also specify additional conditions for delete. Only if the item matches the condition, it will be deleted. {{%code class="language-python" scroll="set-scroll" %}} # Delete a NoSQL item from the table by identifying it with the partition key and sort key res = table.delete_items( { "keys": { "fruit": { "S": "apple" }, "location": { "S": "USA" } } }), # Specify a condition for delete (optional) "condition": { "function": { "function_name": "attribute_exists", "args": [ { "attribute_path": ["properties"] } ] } } }) print(res){{%/code%}}