ziurodb-zql
v1.0.1
Published
Universal Database Query Language (ZQL) client, fluent JavaScript Builder API, script runner, dialect translator, and VS Code language grammar for MongoDB, MySQL, PostgreSQL, and Firebase.
Maintainers
Readme
ZiuroDB Query Language (ZQL) npm Package (ziurodb-zql)
Universal, database-agnostic client and query translation engine for MongoDB, MySQL, PostgreSQL, and future engines.
📦 Installation
npm install ziurodb-zql(Note: Install the database driver for your target database system):
- For MySQL:
npm install mysql2 - For MongoDB:
npm install mongodb - For PostgreSQL:
npm install pg
🚀 Quick Start Example
1. Connecting to MySQL
const { ZQLClient } = require('ziurodb-zql');
async function main() {
// Initialize client with database type and credentials
const db = await ZQLClient.connect({
type: 'mysql',
credentials: {
host: 'localhost',
port: 3306,
user: 'root',
password: 'your_password',
database: 'ecommerce'
}
});
// Execute ZQL Query
const result = await db.query('DATABASE.TREE("users").FIND();');
console.log('--- Native SQL Result ---');
console.log(result.raw);
console.log('--- ZiuroDB Data Format (ZDF) ---');
console.log(result.zdf);
await db.disconnect();
}
main().catch(console.error);2. Connecting to MongoDB
const { connect } = require('ziurodb-zql');
async function main() {
const db = await connect({
type: 'mongodb',
credentials: {
uri: 'mongodb://localhost:27017/ecommerce'
}
});
// Query matching users where age > 18
const res = await db.query('DATABASE.TREE("users").FIND_BRANCH({ age > 18 });');
console.log(res.zdf);
// Add new branch (Insert Document)
await db.query('DATABASE.TREE("users").ADD_BRANCH({ id: 10, name: "Shani", age: 22 });');
await db.disconnect();
}
main();3. Pure Translation (No Database Connection Required)
If you only want to translate ZQL statements into native database queries:
const { translateZQL } = require('ziurodb-zql');
const mysqlSql = translateZQL('DATABASE.TREE("users").FIND_BRANCH({ age > 18 });', 'mysql', 'ecommerce');
console.log(mysqlSql.translated);
// { sql: "SELECT * FROM `ecommerce`.`users` WHERE `age` > ?;", params: [18] }
const mongoQuery = translateZQL('DATABASE.TREE("users").FIND_BRANCH({ age > 18 });', 'mongodb');
console.log(mongoQuery.translated);
// { action: "find", collectionName: "users", filter: { age: { "$gt": 18 } } }📖 ZQL Query Syntax Reference
Database & Tree Commands
SHOW DATABASES;— Lists all databases.DATABASE.TREES();— Lists all tables / collections.DATABASE.TREE("users").FIND();— Retrieves all branches (rows/documents).DATABASE.TREE("users").FIND_BRANCH({ age > 18 });— Queries matching branches.DATABASE.TREE("users").ADD_BRANCH({ id: 1, name: "Shani" });— Inserts a branch.
Leaf Mutations
users.BRANCH(1).ADD_LEAF({ city: "Mumbai" });— Adds a leaf to a branch.users.BRANCH(1).UPDATE_LEAF({ age: 24 });— Updates a leaf value.users.BRANCH(1).DELETE_LEAF({ age });— Deletes a leaf.
📄 License
MIT License © Shani Kumar
