Тип данных Nodejs cassandra
Я использую драйвер 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
}
Что мне нужно сделать, чтобы получить правильное значение?
Спасибо!
3 ответа
Значение столбца счетчика Cassandra - это 64-разрядное целое число со знаком (bigints), в драйвере Node.js оно представлено как Long Closure Google.
Чтобы получить строковое представление десятичного значения bigint, вы можете использовать метод #toString().
//"1", "2", ...
row.hits.toString();
Ответ от jorgebg также применим при выполнении COUNT(*).
Например: SELECT COUNT (*) FROM my_table;
В этом случае, чтобы извлечь значение, которое я использовал: result.rows[0].count.toString();
const str = result.first().count;
const count = JSON.parse(str);