Node.js 卡桑德拉模式少吗?
我正在使用NodeJS应用程序通过 在使用cassandra驱动程序之后,我注意到我们已经为每个表定义了模式是否有人能帮助我了解是否需要在Cassandra中定义每个表的模式? 下面是我如何尝试从我的nodeJS应用程序连接到Cassandra DB:Node.js 卡桑德拉模式少吗?,node.js,cassandra,cassandra-driver,Node.js,Cassandra,Cassandra Driver,我正在使用NodeJS应用程序通过 在使用cassandra驱动程序之后,我注意到我们已经为每个表定义了模式是否有人能帮助我了解是否需要在Cassandra中定义每个表的模式? 下面是我如何尝试从我的nodeJS应用程序连接到Cassandra DB: const cassandra = require("cassandra-driver"); const client = new cassandra.Client({ contactPoints: ['127.0.0.1
const cassandra = require("cassandra-driver");
const client = new cassandra.Client({
contactPoints: ['127.0.0.1'],
localDataCenter: 'datacenter1',
keyspace: 'testdb'
});
const executeCassandraQuery = async (query, params) => {
let fetchData;
try {
fetchData = await client.execute(query, params, { prepare: false });
console.log(`Successfully executed the query: ${JSON.stringify(fetchData)}`);
} catch (error) {
console.log(`There was an error executing the query: ${error}`)
}
return fetchData;
}
client.connect(async function (err, data) {
if (err) {
console.log(`There was an error connecting to Cassandra...${err}`)
}
else {
console.log(`Connected to Cassandra...${data}`);
const insertQuery = 'INSERT INTO testtable (id, firstname, lastname) VALUES(?,?,?)';
const insertQueryParams = [1, "Tony", "Mathew"];
const insertQueryResponse = await executeCassandraQuery(insertQuery, insertQueryParams);
console.log(`insertQueryResponse : ${insertQueryResponse}`);
const fetchQuery = 'SELECT * FROM employees';
}
});
在运行上述nodeJS脚本之前,我使用以下cql命令创建了“testdb”键空间和“testtable”表:
CREATE KEYSPACE testdb WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};
CREATE TABLE testtable(id int PRIMARY KEY, name text);
不,它不是无模式的 相关答案适用于: 相关文本: 不,不再是了。这曾经是可能的。它需要旧的(3.x之前的存储引擎)和基于节俭的API。但是使用CQL(以及新的存储引擎)构建的表需要预先定义所有列,并且在运行时不允许这样做(至少,不像Thrift那样)
不,它不是无模式的。相关答案适用:因为我的评论获得了3票赞成票,我想我会把它转换成一个答案。谢谢@Aaron!你能看看这个卡桑德拉的问题吗?