Nodejs cassandra数据类型问题

时间:2014-08-20 08:10:12

标签: node.js cassandra cql

我正在使用node-cassandra-cql驱动程序(https://github.com/jorgebay/node-cassandra-cql)对cassandra列族进行样本选择。

我的cf有三列数据类型:

1 - value -> text
2 - date  -> timestamp
3 - hits  -> counter

使用nodeJS获取行:

client.execute('SELECT date,value,hits FROM cf LIMIT 100', [],
      function(err, result) {
        if(err){
            var error = {error:true,message:err};
            res.send(error);
        }
        else{
            var trends = {};
            for(var i=0;i<result.rows.length;i++){
                var row      = result.rows[i];
                console.log(row.date);
                console.log(row.hits);
            }
        }
        }
);

控制台日志告诉我:

{
    "low": 1342763392,
    "high": 323,
    "unsigned": false
}
{
    "low": 1,
    "high": 0,
    "unsigned": false
}

我需要做些什么来获得正确的价值?

谢谢!

2 个答案:

答案 0 :(得分:4)

Cassandra计数器列值是一个64位有符号整数(bigints),在Node.js驱动程序中表示为Google Closure's Long

要获取bigint十进制值的字符串表示形式,可以使用#toString()方法。

//"1", "2", ...
row.hits.toString();

答案 1 :(得分:0)

执行COUNT(*)时,jorgebg的回答也适用。

例如: SELECT COUNT(*)FROM my_table;

在这种情况下提取我使用的值: result.rows [0] .count.toString();