Nodejs Cassandra数据库操作插件node-cassandra的使用

Nodejs Cassandra数据库操作插件node-cassandra的使用
node-cassandra-cql 是一个用于 Node.js 的 CQL(Cassandra Query Language)驱动程序,用于与 Apache Cassandra 数据库进行交互。下面是一个基本的使用示例,包括如何安装、连接到 Cassandra 集群、执行查询等。

1. 安装

首先,你需要安装 node-cassandra-cql 模块。你可以通过 npm 来安装:

npm install node-cassandra-cql

2. 连接到 Cassandra 集群

在你的 Node.js 脚本中,你可以这样初始化和连接到 Cassandra 集群:

const cassandra = require('cassandra-driver');

// 创建客户端实例
const client = new cassandra.Client({
    contactPoints: ['127.0.0.1'], // Cassandra 节点地址
    localDataCenter: 'datacenter1', // 数据中心名称
    keyspace: 'testkeyspace' // 默认的 keyspace
});

client.connect((err) => {
    if (err) {
        console.error("连接错误:", err);
    } else {
        console.log("成功连接到 Cassandra");
    }
});

3. 执行查询

你可以使用客户端对象来执行 CQL 查询。以下是一些常见的操作:

插入数据

const query = 'INSERT INTO users (id, name, age) VALUES (?, ?, ?)';
const params = [1, 'John Doe', 42];

client.execute(query, params, { prepare: true }, (err) => {
    if (err) {
        console.error("插入数据时发生错误:", err);
    } else {
        console.log("数据插入成功");
    }
});

查询数据

const query = 'SELECT * FROM users WHERE id = ?';
const params = [1];

client.execute(query, params, { prepare: true }, (err, result) => {
    if (err) {
        console.error("查询数据时发生错误:", err);
    } else {
        result.rows.forEach(row => {
            console.log(`User ID: ${row.id}, Name: ${row.name}, Age: ${row.age}`);
        });
    }
});

更新数据

const query = 'UPDATE users SET age = ? WHERE id = ?';
const params = [43, 1];

client.execute(query, params, { prepare: true }, (err) => {
    if (err) {
        console.error("更新数据时发生错误:", err);
    } else {
        console.log("数据更新成功");
    }
});

删除数据

const query = 'DELETE FROM users WHERE id = ?';
const params = [1];

client.execute(query, params, { prepare: true }, (err) => {
    if (err) {
        console.error("删除数据时发生错误:", err);
    } else {
        console.log("数据删除成功");
    }
});

4. 关闭连接

当你的应用结束时,确保关闭与 Cassandra 的连接:

client.shutdown();

以上就是使用 node-cassandra-cql 库的基本步骤。请根据你的具体需求调整配置和查询语句。


3 回复

嘿,想要用Node.js和Cassandra跳舞吗?那node-cassandra-cql就是你的舞伴啦!首先,别忘了安装它:npm install node-cassandra-cql。接着,让我们来一段简单的探戈:

var cassandra = require('node-cassandra-cql');

var client = new cassandra.Client({contactPoints: ['127.0.0.1'], keyspace: 'mykeyspace'});

client.connect(function (err) {
  if (err) throw err;
  console.log("我们跳得真好!");
  
  var query = 'SELECT * FROM mytable';
  client.execute(query, [], {prepare: true}, function (err, result) {
    if (err) throw err;
    console.log(result.rows);
    // 舞会结束,优雅地退场
    client.shutdown();
  });
});

记住,每个查询都是一次旋转,确保你的代码流畅如舞步!祝你编程愉快!


node-cassandra-cql 是一个用于 Node.js 的 CQL (Cassandra Query Language) 操作库,但请注意,此库现已不维护。目前更为推荐的是 cassandra-driver 这个官方的驱动库。下面我会以 cassandra-driver 为例来介绍如何进行基本的CRUD操作。

首先,你需要安装 cassandra-driver

npm install cassandra-driver

接下来是一个简单的例子,展示如何连接到Cassandra数据库并执行基本的增删改查操作。

  1. 连接到Cassandra
const cassandra = require('cassandra-driver');

// 创建客户端实例
const client = new cassandra.Client({
    contactPoints: ['127.0.0.1'], // Cassandra服务器地址
    localDataCenter: 'datacenter1', // 数据中心名称
    keyspace: 'test_keyspace' // 默认使用的keyspace
});

async function connect() {
    await client.connect();
    console.log("Connected to Cassandra");
}
connect().catch(err => console.error("There was an error:", err));
  1. 创建表
async function createTable() {
    const query = `CREATE TABLE IF NOT EXISTS users (
        id UUID PRIMARY KEY,
        name text,
        age int
    )`;
    await client.execute(query, [], { prepare: false });
    console.log("Table created");
}

createTable().catch(err => console.error("There was an error:", err));
  1. 插入数据
async function insertUser(id, name, age) {
    const query = 'INSERT INTO users (id, name, age) VALUES (?, ?, ?)';
    const params = [id, name, age];
    await client.execute(query, params, { prepare: true });
    console.log("User inserted");
}

insertUser(cassandra.types.uuid(), "John Doe", 30).catch(err => console.error("There was an error:", err));
  1. 查询数据
async function getUserById(userId) {
    const query = 'SELECT * FROM users WHERE id = ?';
    const result = await client.execute(query, [userId], { prepare: true });
    console.log(result.rows);
}

getUserById(cassandra.types.Uuid.random()).catch(err => console.error("There was an error:", err));
  1. 更新数据
async function updateUser(id, newName, newAge) {
    const query = 'UPDATE users SET name = ?, age = ? WHERE id = ?';
    await client.execute(query, [newName, newAge, id], { prepare: true });
    console.log("User updated");
}

updateUser(cassandra.types.Uuid.random(), "Jane Doe", 28).catch(err => console.error("There was an error:", err));
  1. 删除数据
async function deleteUser(userId) {
    const query = 'DELETE FROM users WHERE id = ?';
    await client.execute(query, [userId], { prepare: true });
    console.log("User deleted");
}

deleteUser(cassandra.types.Uuid.random()).catch(err => console.error("There was an error:", err));
  1. 关闭连接
async function closeConnection() {
    await client.shutdown();
    console.log("Connection closed");
}

closeConnection().catch(err => console.error("There was an error:", err));

请确保你的Cassandra数据库正在运行,并且配置了正确的IP地址和端口。这个示例展示了如何与Cassandra进行基础的交互,包括连接、创建表、插入、查询、更新和删除数据。

node-cassandra-cql是Node.js中用于与Cassandra数据库交互的库。首先安装这个库:

npm install node-cassandra-cql

然后可以创建客户端实例并执行CQL命令:

var cassandra = require('node-cassandra-cql');
var client = new cassandra.Client({ contactPoints: ['host1', 'host2'], keyspace: 'testkeyspace' });

client.connect(function (err) {
  if (err) throw err;
  client.execute("SELECT * FROM users", [], function (err, result) {
    if (err) throw err;
    console.log(result.rows);
    client.shutdown();
  });
});

此示例连接到集群,执行查询,并打印结果。需要替换contactPointskeyspace为你的设置。

回到顶部