当前位置: 首页 > 知识库问答 >
问题:

NodeJS+Cassandra:无法检索布尔数据和整数数据

於宾白
2023-03-14
'id uuid PRIMARY KEY,' +
'model varchar,' +
'price int,' +
'isAvailable boolean,' + 
'profit int,' + 
'lastSaleDate timestamp'

我能成功地创造一个记录。我正在使用准备好的语句插入。

当我检索时,虽然我获得了记录,但我无法获得uuid和varchar数据类型(即id&model)以外的任何值

console.log返回以下内容:

id: '5210d4ea-9f57-4159-aee4-026a256841ee',
model: 'carModel1',
price: undefined,
isAvailable: undefined,
profit: undefined,
lastSaleDate: undefined
client.execute('CREATE TABLE IF NOT EXISTS franchise.cars (' +
                'id uuid PRIMARY KEY,' +
                'model varchar,' +
                'price int,' +
                'isAvailable boolean,' + 'profit int,' + 'lastSaleDate timestamp' +
                ');',
                next);

添加记录:

var upsertCars = 'INSERT INTO franchise.cars (id, model, price, isAvailable, profit, lastSaleDate)  '
    + 'VALUES(?, ?, ?, ?, ?, ?);';

var id = null;
if ( ! req.body.hasOwnProperty('id')) {
    id = cassandra.types.uuid();
} else {
    id = req.body.id;
}

var date_as_timestamp=new Date(req.body.lastSaleDate).getTime();

client.execute(upsertCars,
        [id, req.body.model, req.body.price, req.body.isAvailable, req.body.profit, date_as_timestamp],{prepare:true},
        afterExecution('Error: ', 'Car ' + req.body.model + ' upserted.', res));

获取记录:

var getCars = 'SELECT *FROM franchise.cars';

var cars=[];

    client.execute(getCars,{prepare:true}, function(err, result) {
        if (err) {
            res.status(404).send({ msg : 'Car not found.' });
        } else {
for(var i=0; i<result.rows.length;i++){
console.log(result.rows[i].isAvailable);
machines.push({id : result.rows[i].id, model : result.rows[i].model, price : result.rows[i].price, isAvailable : result.rows[i].isAvailable, profit : result.rows[i].profit, lastSaleDate : result.rows[i]. lastSaleDate});
}

共有1个答案

钱锦
2023-03-14

虽然插入需要伴随正确大小写的属性,但获取数据时应该使用小写的属性名

IE.

var upsertCars = 'INSERT INTO franchise.cars (id, model, price, isAvailable, profit, lastSaleDate)  '
    + 'VALUES(?, ?, ?, ?, ?, ?);';

对于插入很好,但是在获取时:

var getCars = 'SELECT *FROM franchise.cars';

var cars=[];

    client.execute(getCars,{prepare:true}, function(err, result) {
        if (err) {
            res.status(404).send({ msg : 'Car not found.' });
        } else {
for(var i=0; i<result.rows.length;i++){
console.log(result.rows[i].isAvailable);
machines.push({id : result.rows[i].id, model : result.rows[i].model, price : result.rows[i].price, isAvailable : result.rows[i].isAvailable, profit : result.rows[i].profit, lastSaleDate : result.rows[i]. lastSaleDate});
}
var getCars = 'SELECT *FROM franchise.cars';

var cars=[];

    client.execute(getCars,{prepare:true}, function(err, result) {
        if (err) {
            res.status(404).send({ msg : 'Car not found.' });
        } else {
for(var i=0; i<result.rows.length;i++){
console.log(result.rows[i].**isavailable**);
machines.push({id : result.rows[i].id, model : result.rows[i].model, price : result.rows[i].price, isAvailable : result.rows[i].**isavailable**, profit : result.rows[i].profit, lastSaleDate : result.rows[i]. **lastsaledate**});
}
 类似资料:
  • 问题内容: MVC4 +实体框架4.4 + MySql + POCO /代码优先 我正在设置以上配置..这是我的课程: 这是我的web.config设置… 数据库AND表已经存在… 我对mvc还是很陌生,但是正在使用本教程 应用程序构建良好…但是,当我尝试使用Product(BTD.Data)作为我的模型类并使用BTDContext(BTD.DataContext)作为我的数据上下文类添加控制器时

  • 我想从数据库中检索名称。但我总是收到错误: 数据库Java语言 它不断返回错误 android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1,字符串名称=helper.getProductNameT(cur); 有人知道我的编码哪里出错了吗?

  • 我试图显示一个零件的"loc",如果它的零件号我给。以下是数据结构的样子: 活动代码: getLoc是Product类的getter函数,它返回给定curP对应的“loc”。curP部分表示子值。 逻辑对我来说似乎是正确的,但我没有得到输出。我哪里出了问题?

  • 我正在尝试获取属性的值以使用引导程序进行删除确认。问题是我无法获取的值。 当我按下控制台按钮时,结果是 管理员视图:488 初始化原型: 对象(0) 数据表: ƒ (t) 添加: ƒ (e,t) 添加返回: ƒ (e) 添加类: ƒ (e) 词缀: ƒ (c) 之后: ƒ () ajax完成: ƒ (e) ajax错误: ƒ (e) ajax发送: ƒ (e) ajax开始: ƒ (e) ajax

  • 我使用node-cassandra-cql驱动程序(https://github.com/jorgebay/node-cassandra-cql)对cassandra列族进行示例选择。 我需要做什么才能得到正确的值? 谢了!

  • SELECT 语句 是最常用的SQL语句了,用来索引一个或者多个表信息。 关键字(keyword) 作为SQL组成部分的字段,关键字不能作为表或者列的名字。 使用SELECT索引数据,必须至少给出两条信息,想要什么? 从什么地方获取? 检查单个列 SELECT prod_name FROM Products; 解释:使用SELECT 语句从 Products 表中检索一个名为prod_name