When building applications with Node.js in general or Total.js specifically, querying and managing data efficiently is essential. In this blog, we’ll cover how to perform basic data operations using the Total.js QueryBuilder
. This first part will introduce fundamental concepts, demonstrate core actions like inserting and retrieving data, and showcase practical examples to get you started.
QueryBuilder
in Total.jsTotal.js’s QueryBuilder
offers a powerful abstraction layer for interacting with various databases through operations such as filtering, inserting, updating, and retrieving data. Whether you're working on a lightweight application or managing complex queries, QueryBuilder
provides a simple yet flexible ORM solution for Node.js applications.
QueryBuilder
acts as a middle layer, abstracting the specifics of database engines. To utilize it effectively, you’ll need to integrate an existing implementation or build your own that meets your requirements. Total.js supports multiple database engines, ensuring flexibility for different use cases.
Here are the currently available implementations:
QueryBuilder
with one of the most robust and feature-rich relational databases.QueryBuilder
with this lightweight, serverless database for quick deployments or embedded applications.QueryBuilder
In this guide, we’ll start with an embedded NoSQL (TextDB) database to demonstrate how to define schemas and perform basic actions like querying, inserting, and updating data. By the end, you’ll have the skills to adapt these operations for other supported database engines.
To learn effectively, we'll create a test NoSQL database file with sample user data.
Database Setup: Create a databases/users.nosql
file to store sample user records:
Good to know: You don't need to manually create the .nosql
file in the databases
folder. The framework is able to create it during the insert
operation if it does not exists. But the .nosql
file content is plaintext and it is important to understand its structure. Maybe it will be usefull to fix certain cases.
Schema Definition: Create a schema with actions in schemas/users.js. We’ll define actions for listing, retrieving, and inserting users.
In schemas/users.js
, we'll define actions for listing and inserting users. This schema uses QueryBuilder
methods to filter data, retrieve specific records, and add new users to the database.
1. Listing Users with Filters
We start by defining a list action to retrieve users based on criteria like name or age.
Usage Examples:
Here are some variations of using list
to filter users.
2. Retrieving a User by ID
Another useful feature is retrieving a user by their ID. Using QueryBuilder
's .id()
method makes this straightforward:
Example Usage:
3. Inserting a New User
Next, let’s define an insert
action to add new users to the database.
This action adds a user to databases/users.nosql
. Here’s how you can call the insert
action.
Usage Example:
1. Retrieve Users by Filtered Name
2. Retrieve User by ID
3. Insert a New User and Retrieve the Updated List
In this first part of QueryBuilder in Action, we covered the essentials: creating a basic NoSQL database, defining schema actions, and using QueryBuilder
methods to list
, filter
, retrieve
, and insert
users. We explored practical code examples for each operation to help you understand how these concepts work in a real-world scenario.
In the next part, we’ll dive into more advanced QueryBuilder
methods, and complex filtering to give you a complete toolkit for managing data efficiently in Total.js
.
Stay tuned for QueryBuilder in Action Part 2, where we'll go deeper into advanced querying techniques to supercharge your Total.js
applications!